Skip to content

Instantly share code, notes, and snippets.

@raspiduino
Last active June 4, 2022 03:21
Show Gist options
  • Save raspiduino/f456eb4febef7e0cd8c55727f5987e17 to your computer and use it in GitHub Desktop.
Save raspiduino/f456eb4febef7e0cd8c55727f5987e17 to your computer and use it in GitHub Desktop.
x64 exe -> LLVM IR -> x32 exe
//
// This file was generated by the Retargetable Decompiler
// Website: https://retdec.com
// Copyright (c) Retargetable Decompiler <[email protected]>
//
#include <math.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
#include <windows.h>
// ---------------- Integer Types Definitions -----------------
typedef int64_t int128_t;
typedef int64_t int256_t;
// ----------------- Float Types Definitions ------------------
typedef float float32_t;
typedef double float64_t;
// ------------------------ Structures ------------------------
struct struct1 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
};
struct struct2 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
};
struct struct3 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
};
struct _EXCEPTION_POINTERS {
struct _EXCEPTION_RECORD * e0;
struct _CONTEXT * e1;
};
struct _EXCEPTION_RECORD {
int32_t e0;
int32_t e1;
struct _EXCEPTION_RECORD * e2;
int64_t * e3;
int32_t e4;
int32_t e5[1];
};
struct _FILETIME {
int32_t e0;
int32_t e1;
};
struct _IMAGE_RUNTIME_FUNCTION_ENTRY {
int32_t e0;
int32_t e1;
int64_t e2;
};
struct _IO_FILE {
int32_t e0;
};
struct _LARGE_INTEGER {
int64_t e0;
};
struct _LIST_ENTRY {
struct _LIST_ENTRY * e0;
struct _LIST_ENTRY * e1;
};
struct _LIST_ENTRY {
struct _LIST_ENTRY * e0;
struct _LIST_ENTRY * e1;
};
struct _M128A {
int64_t e0;
int64_t e1;
};
struct _CONTEXT {
int64_t e0;
int64_t e1;
int64_t e2;
int64_t e3;
int64_t e4;
int64_t e5;
int32_t e6;
int32_t e7;
int16_t e8;
int16_t e9;
int16_t e10;
int16_t e11;
int16_t e12;
int16_t e13;
int32_t e14;
int64_t e15;
int64_t e16;
int64_t e17;
int64_t e18;
int64_t e19;
int64_t e20;
int64_t e21;
int64_t e22;
int64_t e23;
int64_t e24;
int64_t e25;
int64_t e26;
int64_t e27;
int64_t e28;
int64_t e29;
int64_t e30;
int64_t e31;
int64_t e32;
int64_t e33;
int64_t e34;
int64_t e35;
int64_t e36;
int64_t e37;
int64_t e38;
struct _M128A e39[26];
int64_t e40;
int64_t e41;
int64_t e42;
int64_t e43;
int64_t e44;
int64_t e45;
};
struct _OVERLAPPED {
int32_t e0;
int32_t e1;
int64_t e2;
int64_t * e3;
};
struct _RTL_CRITICAL_SECTION {
struct _RTL_CRITICAL_SECTION_DEBUG * e0;
int32_t e1;
int32_t e2;
int64_t * e3;
int64_t * e4;
int32_t e5;
};
struct _RTL_CRITICAL_SECTION_DEBUG {
int16_t e0;
int16_t e1;
struct _RTL_CRITICAL_SECTION * e2;
struct _LIST_ENTRY e3;
int32_t e4;
int32_t e5;
int32_t e6;
int16_t e7;
int16_t e8;
};
struct _STARTUPINFOW {
int32_t e0;
int16_t * e1;
int16_t * e2;
int16_t * e3;
int32_t e4;
int32_t e5;
int32_t e6;
int32_t e7;
int32_t e8;
int32_t e9;
int32_t e10;
int32_t e11;
int16_t e12;
int16_t e13;
char * e14;
int64_t * e15;
int64_t * e16;
int64_t * e17;
};
struct _UNWIND_HISTORY_TABLE_ENTRY {
int64_t e0;
struct _IMAGE_RUNTIME_FUNCTION_ENTRY * e1;
};
struct _UNWIND_HISTORY_TABLE {
int32_t e0;
char e1;
char e2;
char e3;
char e4;
int64_t e5;
int64_t e6;
struct _UNWIND_HISTORY_TABLE_ENTRY e7[1];
};
struct _cpinfo {
int32_t e0;
char e1[1];
char e2[1];
};
// ------------------- Function Prototypes --------------------
int64_t entry_point(void);
int64_t function_140001000(int32_t a1, int64_t a2, int64_t a3);
int64_t function_140001020(char * a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_140001090(void);
int64_t function_1400010a0(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_140001110(void);
int64_t function_1400011d8(void);
int64_t function_1400011f4(void);
int64_t function_1400013c0(int64_t a1);
int64_t function_14000140c(int64_t a1);
int64_t function_140001498(int64_t a1);
int64_t function_140001529(void);
int64_t function_14000152b(int32_t a1);
int64_t function_140001554(int64_t a1, int32_t a2);
int64_t function_140001580(int64_t a1);
int64_t function_1400015bc(int64_t a1);
int64_t function_1400015d4(void);
int64_t function_140001680(void);
int64_t function_140001684(void);
int64_t function_14000168c(void);
void function_140001694(int64_t * ListHead);
int64_t function_1400016a4(void);
int64_t function_1400016a8(void);
int64_t function_1400016ac(void);
int64_t function_1400016b4(void);
int64_t function_1400016d0(void);
int64_t function_1400016dc(void);
int64_t function_1400016e4(void);
int64_t function_1400016ec(int64_t a1);
int64_t function_1400016f4(int64_t a1, int64_t a2);
int64_t function_140001840(void);
int64_t function_140001848(int64_t a1);
int32_t (*function_14000189c(int32_t (*lpTopLevelExceptionFilter)(struct _EXCEPTION_POINTERS *)))(struct _EXCEPTION_POINTERS *);
int64_t function_1400018ac(int64_t a1);
int64_t function_140001908(void);
int64_t function_140001944(void);
int64_t function_140001980(int64_t a1);
int64_t function_140001b2c(void);
int64_t function_140001b40(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_140001d38(void);
int64_t function_140001d60(int32_t a1);
int64_t function_140001d7c(int64_t a1, int64_t a2);
int64_t function_140001dec(int64_t a1, int64_t a2);
int64_t function_140001df0(void);
int64_t function_140001e04(void);
int64_t function_140001e30(int64_t a1, int64_t a2, int64_t a3, int64_t result);
int64_t function_140001e50(int64_t * a1, int32_t a2, uint64_t a3, int64_t a4);
int64_t function_14000219b(int64_t a1);
int64_t function_140002220(int64_t a1);
int64_t function_140002224(int64_t a1);
int64_t function_140002298(void);
int64_t function_140002358(void);
int64_t function_140002444(uint32_t a1, char * lpProcName, int64_t * a3, char * a4, int64_t a5);
int64_t function_140002594(int64_t a1);
int64_t function_1400025dc(int64_t a1);
int64_t function_140002624(int32_t dwTlsIndex);
int64_t function_14000266c(int32_t dwTlsIndex, int64_t lpTlsValue);
int64_t function_1400026c0(int64_t lpCriticalSection, int64_t dwSpinCount, int64_t a3);
int64_t function_140002740(int64_t a1, int64_t a2, int64_t a3);
int64_t function_140002760(int64_t result, uint64_t a2, uint64_t a3, int64_t a4);
int64_t function_140002df0(int64_t a1, int64_t a2, int64_t a3);
int64_t function_140002e40(int64_t a1, int64_t a2, int64_t a3);
int64_t function_140002e70(int64_t a1, int64_t a2);
int64_t function_140002ea0(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_140002ee8(void);
void function_140003078(struct _RTL_CRITICAL_SECTION * lpCriticalSection);
void function_140003084(struct _RTL_CRITICAL_SECTION * lpCriticalSection);
int64_t function_140003090(void);
int64_t function_1400030d0(int64_t a1, uint64_t a2);
int64_t function_140003178(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_140003200(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_140003290(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_14000331c(int64_t * a1, int64_t a2);
int64_t function_1400033b8(int64_t a1);
int64_t function_1400034f0(int64_t a1, int64_t a2);
int64_t function_140003590(int64_t a1, int64_t a2);
int64_t function_140003608(int64_t a1, int64_t a2);
int64_t function_1400036ac(int64_t * a1);
int64_t function_1400038c0(int64_t a1, char a2);
int64_t function_140003930(int64_t a1);
int64_t function_1400039d4(int64_t a1);
int64_t function_140003b44(int64_t a1, char a2, int64_t a3);
int64_t function_140003dd0(uint32_t result);
int64_t function_140003e0a(void);
int64_t function_140003e38(int64_t a1);
int64_t function_140003eac(int64_t a1);
int64_t function_140004068(int64_t a1, int32_t a2);
int64_t function_140004130(int64_t a1, int64_t a2, int32_t a3, int64_t a4);
int64_t function_1400042b0(int64_t a1);
int64_t function_140004338(int64_t a1);
int64_t function_1400043d0(int64_t a1);
int64_t function_14000446c(int64_t a1);
int64_t function_140004590(int64_t a1, int16_t * a2, int64_t a3, int64_t a4, int64_t a5);
int64_t function_140004714(int32_t a1, int64_t a2);
int64_t function_140004898(void);
int64_t function_1400048a0(int64_t a1);
int64_t function_1400048c8(int64_t a1);
int64_t function_140004928(int64_t a1, int32_t a2, int32_t a3, int64_t * a4, int64_t * a5);
int64_t function_140004ae8(uint64_t a1, uint64_t a2, uint64_t a3);
int64_t function_140004b48(int64_t a1);
int64_t function_140004cd0(void);
int64_t function_140004d3c(int64_t a1, int64_t a2);
int64_t function_140004e88(void);
int64_t function_140005058(void);
int64_t function_140005104(void);
int64_t function_14000513c(int64_t a1);
int64_t function_1400051f7(int64_t a1);
int64_t function_140005370(int64_t a1);
void function_140005378(int32_t a1, int64_t a2, int64_t a3);
void function_140005388(int32_t a1, int64_t a2, int64_t a3);
void function_140005398(int32_t a1, int64_t a2, int64_t a3);
int64_t function_1400053a4(uint64_t a1);
void function_1400053e0(int32_t a1, int64_t a2, int64_t a3);
int64_t function_140005454(void);
int64_t function_14000545c(void);
int64_t function_140005464(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t a5, int64_t a6);
int64_t function_1400054d4(void);
int64_t function_1400054e0(void);
int64_t function_14000557c(void);
int64_t function_1400055b0(void);
int64_t function_1400055b8(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t a5, int64_t * a6, int64_t * a7);
int64_t function_1400055f4(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t * a5);
int64_t function_140005630(int64_t a1);
int64_t function_1400057e0(int64_t a1);
int64_t function_1400058f8(int64_t a1);
int64_t function_140005908(int64_t * a1);
int64_t function_140005944(int64_t * a1);
int64_t function_14000596c(int64_t * a1, int64_t a2);
int64_t function_1400059ec(void);
int64_t function_1400059fc(void);
int64_t function_140005a3c(int64_t a1);
int64_t function_140005a44(void);
int64_t function_140005a84(void);
int64_t function_140005ae0(void);
int64_t function_140005af4(int64_t a1);
int64_t function_140005bc0(void);
int64_t function_140005c20(int32_t a1, int64_t * a2, int64_t a3, int64_t a4);
int64_t function_140005f24(int64_t a1, int64_t a2, int64_t * a3);
int64_t function_140005fb0(int64_t a1, int64_t a2, int64_t a3);
int64_t function_1400061b8(int64_t a1);
int64_t function_140006270(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_140006290(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int64_t a5);
int64_t function_1400062d8(int64_t a1);
int64_t function_140006468(int64_t a1, int64_t lpProcName, int64_t a3, int64_t a4);
int64_t function_140006a64(int64_t a1);
int64_t function_140006adc(void);
int64_t function_140006b90(int64_t * a1, int64_t * lpCriticalSection, int64_t * a3, int64_t * lpCriticalSection2, int64_t a5, int64_t a6, int64_t a7, int64_t a8, int64_t * a9, int64_t a10, int64_t a11, int64_t a12);
int64_t function_140006c2c(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t a5, int64_t a6, int32_t * a7, char * a8, int32_t * a9, int64_t a10);
int64_t function_140006d0c(int64_t a1);
int64_t function_140006d6c(int64_t a1);
int64_t function_140006de8(int64_t a1);
int64_t function_140006e34(int64_t a1);
int64_t function_140006e3c(int64_t a1);
int64_t function_140006e7c(void);
int64_t function_140006f6c(void);
int64_t function_140007078(void);
int64_t function_1400070b4(void);
int64_t function_140007154(int64_t a1, int64_t * a2);
int64_t function_140007180(int64_t a1, int64_t a2, uint64_t a3, int32_t a4);
int64_t function_140007300(int32_t * a1, int64_t a2, int64_t a3);
int64_t function_140007308(int64_t a1, int64_t a2, uint64_t a3, int16_t a4, int64_t a5);
int64_t function_1400074a4(int64_t a1, uint64_t a2);
int64_t function_1400075f4(int64_t a1, uint64_t a2);
int64_t function_1400077cc(void);
int64_t function_14000780c(void);
int64_t function_14000784c(void);
int64_t function_140007894(void);
int64_t function_140007adc(int64_t a1, int32_t a2);
int64_t function_140007b44(void);
int64_t function_140007cc0(void);
int64_t function_140007d8c(void);
int64_t function_140007e54(int64_t a1, int64_t a2, uint64_t a3, int64_t a4, int64_t a5, int64_t a6, int64_t a7, int64_t a8, int64_t a9, int64_t a10);
int64_t function_1400081d4(int64_t a1, int64_t a2, int64_t a3);
int64_t function_1400082c4(int64_t a1, uint64_t a2, int64_t a3, int64_t a4, int64_t a5, int64_t * a6, char a7, int64_t a8);
int64_t function_140008498(int64_t a1);
int64_t function_140008600(int64_t a1, int64_t a2, int64_t a3);
int64_t function_140008748(int64_t a1, int64_t a2, int64_t a3, int32_t a4);
int64_t function_140008860(int64_t * a1, int64_t a2, int64_t a3, int64_t a4, int64_t a5, int64_t a6, int64_t a7, uint64_t a8, int64_t a9, uint32_t a10);
int64_t function_140008bc0(int64_t a1, int64_t a2);
int64_t function_140008bf0(int64_t a1);
int64_t function_140008c38(int64_t a1);
int64_t function_140008d00(int64_t a1, int64_t a2);
int64_t function_140008d3c(uint64_t a1, uint64_t a2);
int64_t function_140008d50(int64_t a1, int64_t * a2, int64_t a3, int64_t a4);
int64_t function_140008ec8(int64_t * a1, int64_t * a2, int64_t a3, int64_t a4);
int64_t function_140009054(int64_t a1, int64_t a2);
int64_t function_140009260(int64_t a1, int32_t a2, int32_t a3, int128_t * a4);
int64_t function_1400093e8(int64_t a1, int64_t a2, int128_t * a3, int64_t a4);
int64_t function_1400096f8(int64_t a1, int64_t * a2);
int64_t function_140009700(int64_t * a1, int64_t * a2, int32_t a3, int64_t a4);
int64_t function_140009814(int32_t hModule, int64_t a2, int64_t a3);
int64_t function_140009934(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t a5, int64_t a6, int64_t * a7, int64_t * a8);
int64_t function_140009c00(int64_t a1);
int64_t function_140009de4(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_140009fa4(int64_t a1, int64_t a2);
int64_t function_14000a0bc(void);
int64_t function_14000a0d8(int64_t a1, int64_t a2);
int64_t function_14000a40c(int64_t a1);
int64_t function_14000a420(uint32_t CodePage, int64_t dwFlags);
int64_t function_14000a47c(uint32_t CodePage, int32_t a2, int64_t lpWideCharStr, int32_t cchWideChar, int64_t a5, int32_t a6);
int64_t function_14000a52c(int64_t a1, int64_t a2);
int64_t function_14000a630(int64_t a1, int64_t a2);
int64_t function_14000a950(int64_t a1);
int64_t function_14000aa38(int64_t a1, int32_t a2);
int64_t function_14000aaf8(void);
int64_t function_14000ab34(void);
int64_t function_14000abdc(int64_t a1);
int64_t function_14000ac2c(int64_t a1);
int64_t function_14000acd4(int32_t a1);
int64_t function_14000acfc(int32_t a1);
int64_t function_14000ad24(int64_t a1, int64_t a2);
int64_t function_14000ade0(int64_t a1);
int64_t function_14000ae58(void);
int64_t function_14000afec(uint64_t a1, int64_t a2);
int64_t function_14000b17c(int32_t a1, int64_t dwInfoType, int64_t * a3, int64_t a4, int64_t * lpCharType, int64_t a6, int32_t a7);
int64_t function_14000b640(void);
int64_t function_14000b6b0(int64_t a1, int64_t result);
int64_t function_14000b718(int64_t a1, uint64_t a2, uint64_t a3);
int64_t function_14000b7cc(void);
int64_t function_14000b7d8(int64_t * a1, int64_t * a2);
int64_t function_14000b858(int64_t * a1, int64_t * a2);
int64_t function_14000b894(int64_t a1);
int64_t function_14000b900(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t a5, int64_t a6);
int64_t function_14000b948(void);
int64_t function_14000b998(int64_t a1);
int64_t function_14000bc04(int64_t a1, int64_t a2, int64_t a3);
int64_t function_14000bd0c(int64_t a1);
int64_t function_14000bdbc(int64_t a1);
int64_t function_14000be40(int64_t a1);
int64_t function_14000bea4(int64_t * a1, int32_t * a2, int64_t * a3, int32_t * a4, int32_t * a5);
int64_t function_14000bf30(int64_t a1);
int64_t function_14000bfc4(int64_t * a1, int64_t a2, uint64_t a3, int64_t a4);
int64_t function_14000c4b0(int64_t * a1, int64_t a2, uint64_t a3, int64_t a4);
int64_t function_14000c5b4(int64_t * a1, int64_t a2, uint64_t a3, int64_t a4);
int64_t function_14000c6d0(int64_t * a1, int64_t a2, uint64_t a3, int64_t a4);
int64_t function_14000c840(int64_t a1, int64_t a2, int64_t a3);
int64_t function_14000c92c(int64_t a1, int64_t lpBuffer, int64_t a3);
int64_t function_14000cc10(char a1);
int64_t function_14000cc5c(int64_t a1);
int64_t function_14000cc98(int32_t * a1, int64_t * a2, int64_t a3, int64_t * a4, int64_t a5, int64_t * a6);
int64_t function_14000ce10(int64_t a1, int16_t a2, int64_t * a3);
int64_t function_14000cec4(int64_t a1, uint64_t a2, int64_t a3, int64_t * a4, int64_t a5, int64_t a6);
int64_t function_14000d020(int32_t * a1, int32_t * a2);
int64_t function_14000d44c(int64_t a1, int64_t a2, int64_t * a3, int64_t a4, int64_t a5);
int64_t function_14000e718(int64_t a1);
int64_t function_14000e72c(int64_t a1, int64_t a2);
int64_t function_14000e810(int64_t a1);
int64_t function_14000e88c(int64_t a1, int64_t a2);
int64_t function_14000e944(int64_t a1);
int64_t function_14000e9b0(int64_t a1, uint64_t a2, int64_t a3, int64_t a4);
int64_t function_14000ed50(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_14000f298(uint64_t a1, uint64_t a2, int64_t a3);
int64_t function_14000f334(int64_t a1, int64_t a2, int64_t a3, int64_t a4, uint32_t a5, int64_t a6, uint32_t a7, int32_t a8, int32_t a9);
int64_t function_14000f6e4(int64_t a1);
int32_t function_14000f6fc(char * String1, char * String2, int32_t MaxCount);
int64_t function_14000f814(int64_t a1, int64_t a2);
int64_t function_14000f9ac(int64_t a1, int64_t a2, int64_t a3);
int64_t function_14000fa34(int64_t lpMem, uint64_t a2);
int64_t function_14000fab0(int64_t * a1, int32_t * a2, int64_t * a3, int32_t * a4, int32_t * a5);
int64_t function_14000fb24(int64_t a1);
int64_t function_14000fbc8(int64_t a1);
int64_t function_14000fc88(int64_t a1);
int64_t function_14000fca4(int64_t a1, int64_t a2, int64_t a3);
int64_t function_14000fd94(int64_t a1, int64_t a2, int64_t dwMoveMethod);
int64_t function_14000fe30(int64_t a1, int32_t a2, int64_t a3, int64_t a4);
int64_t function_14000fe38(int64_t a1, int32_t a2, int64_t a3);
int64_t function_14000fe40(int64_t a1);
int64_t function_14000fe7c(int64_t * a1, int64_t a2, int64_t a3, int64_t a4);
int64_t function_140010054(int64_t * a1, uint32_t a2, int32_t a3);
int64_t function_1400100b8(int64_t * a1);
int64_t function_1400100d8(int64_t * a1);
int64_t function_140010124(int64_t * a1);
int64_t function_1400107ec(int64_t a1);
int64_t function_1400107f8(void);
int64_t function_1400108ec(void);
int64_t function_140010940(uint32_t a1);
int64_t function_140010a88(uint32_t a1);
int64_t function_140010b0c(int64_t a1);
int64_t function_140010b78(int64_t a1, int64_t a2);
int64_t function_140010b90(int64_t a1, int64_t a2, int64_t a3);
int64_t function_140010c2c(int64_t a1, int64_t a2, uint64_t a3, int64_t a4);
int64_t function_140010cdc(int64_t a1, int64_t a2, int64_t a3, int64_t a4, int32_t a5, int64_t a6, int32_t a7, int32_t a8);
int64_t function_1400110c8(void);
int64_t function_14001111c(void);
int64_t function_140011138(int16_t * lpBuffer, int64_t a2, int64_t * lpNumberOfCharsWritten);
int64_t function_1400111f8(void);
int64_t function_140011268(int32_t a1, int32_t a2);
int64_t function_140011530(int64_t a1);
int64_t function_140011598(int64_t a1, int64_t a2);
int64_t function_140011654(int64_t a1, int64_t a2, int64_t a3, int64_t a4, int64_t a5, int64_t a6, int64_t a7, int64_t a8, int64_t a9);
int128_t function_14001177c(int64_t a1);
int64_t function_140011830(void);
int64_t function_1400118e0(void);
int64_t function_1400118f0(int64_t a1);
int64_t function_1400118fa(void);
int64_t function_140011930(int64_t * a1, int64_t * a2, int32_t a3, int64_t a4, int64_t * a5, int64_t * a6);
int64_t function_140011958(int64_t a1, int64_t a2, int64_t a3, int64_t a4, int64_t a5, int64_t a6, int32_t a7);
int64_t function_140011c98(int64_t a1, int64_t a2);
int64_t function_140011cb8(int64_t a1, int64_t a2);
int64_t function_140011d34(int64_t a1);
int64_t function_140011d54(int64_t a1, int32_t a2);
int64_t function_140011dc0(int64_t * a1);
int64_t function_140011e10(int64_t a1);
int64_t function_140011e3c(void);
int64_t function_140011e5c(int64_t a1, int64_t a2, int64_t a3);
int64_t function_140011ed0(uint64_t a1);
int64_t function_140011f24(int64_t a1);
int64_t function_140011ff8(void);
int64_t function_14001200c(int64_t a1);
int64_t function_140012200(int64_t a1, int64_t a2, int64_t a3);
int64_t function_1400122c8(int64_t a1, int64_t a2);
int64_t function_140012404(int64_t a1, int64_t a2);
int64_t function_1400124a0(int32_t a1, int64_t a2, int32_t a3);
int64_t function_1400124c0(void);
int64_t function_1400124d0(int64_t a1, int64_t a2);
int64_t function_1400124ee(int64_t a1, int64_t a2);
int64_t function_140012506(int64_t a1, int64_t a2);
int64_t function_14001259c(void);
int64_t function_1400125b7(void);
int64_t function_1400125d1(int64_t result, int64_t a2);
int64_t function_1400125ec(void);
int64_t function_14001261f(void);
int64_t function_14001269d(void);
int64_t function_1400126be(void);
int64_t function_1400126d6(void);
int64_t function_1400126f0(void);
int64_t function_140012707(int64_t a1, int64_t a2);
int64_t function_140012740(int64_t a1, int64_t a2);
// --------------------- Global Variables ---------------------
void (**g1)() = NULL; // 0x140013260
void (**g2)() = NULL; // 0x140013270
int32_t (**g3)() = NULL; // 0x140013278
int32_t (**g4)() = NULL; // 0x1400132b0
void (**g5)() = NULL; // 0x1400132b8
void (**g6)() = NULL; // 0x1400132d8
void (**g7)() = NULL; // 0x1400132e0
void (**g8)() = NULL; // 0x1400132e8
int128_t g9; // 0x140013300
int64_t g10 = 0x140001d7c; // 0x140013310
char * g11; // 0x140013b12
int64_t g12 = 0x200000000; // 0x1400141b8
int64_t g13 = 0x200000000; // 0x1400141d0
int64_t g14 = 0x200000000; // 0x1400141e0
int64_t g15 = 0x200000000; // 0x1400141f8
int64_t g16 = 0x200000001; // 0x140014210
int64_t g17 = 0x600000000; // 0x140014240
int64_t g18 = 0x1400059b4; // 0x140014760
int32_t * g19 = (int32_t *)0x1600000001; // 0x140014860
int64_t g20 = 0x20002000200020; // 0x140015850
int32_t g21 = 0x540be400; // 0x140019060
char * g22 = "0"; // 0x140019a2c
int64_t g23; // 0x14001b510
int32_t g24 = 1; // 0x14001d004
int32_t g25 = 1; // 0x14001d008
int32_t g26 = 2; // 0x14001d00c
int64_t g27 = 0x80000; // 0x14001d010
int64_t g28 = 0x2000000; // 0x14001d018
int64_t g29 = 0x2b992ddfa232; // 0x14001d020
int64_t g30 = -0x2b992ddfa233; // 0x14001d028
int32_t g31 = -1; // 0x14001d030
int64_t g32 = 0; // 0x14001d040
int32_t * g33 = NULL; // 0x14001d058
char g34 = 2; // 0x14001d148
int32_t g35 = 0; // 0x14001d160
int32_t g36 = -1; // 0x14001d1a8
int64_t g39 = 0; // 0x14001d320
char * g40 = "\x01\x02\x04\b"; // 0x14001d760
int32_t * g41 = (int32_t *)-0x7d867d9ffffffc5c; // 0x14001d770
char * g42 = "\xa6\xdf"; // 0x14001d780
int32_t g43 = -2; // 0x14001d900
int64_t g44 = -2; // 0x14001da10
char g45 = 1; // 0x14001da18
char g46 = 1; // 0x14001da20
int64_t g47 = 0; // 0x14001da40
int32_t g48 = 0; // 0x14001da48
int32_t g49 = 0; // 0x14001da58
char g50 = 0; // 0x14001da59
int64_t g51 = 0; // 0x14001da60
int64_t g52 = 0; // 0x14001da70
int64_t g53 = 0; // 0x14001da78
int64_t g54 = 0; // 0x14001da88
int64_t g55 = 0; // 0x14001daa0
int32_t g56 = 0; // 0x14001daa8
int32_t g57 = 0; // 0x14001daac
int32_t g58 = 0; // 0x14001dac0
int64_t g59 = 0; // 0x14001db38
int32_t g60 = 0; // 0x14001dc20
int64_t g61 = 0; // 0x14001dc28
int32_t g62 = 0; // 0x14001dc30
int64_t g63 = 0; // 0x14001dc31
int32_t g64 = 0; // 0x14001dc34
int64_t g65 = 0; // 0x14001dc38
int32_t g66 = 0; // 0x14001dc40
int64_t g67 = 0; // 0x14001dd48
int64_t g68 = 0; // 0x14001dd50
int64_t g69 = 0; // 0x14001dd60
int64_t g70 = 0; // 0x14001dd68
int32_t g71 = 0; // 0x14001dd70
char g72 = 0; // 0x14001dd78
int32_t g73 = 0; // 0x14001dd80
int64_t g74 = 0; // 0x14001dd88
int64_t g75 = 0; // 0x14001dd90
int64_t g76 = 0; // 0x14001dd98
char * g77; // 0x14001dda0
int32_t g78 = 0; // 0x14001ddb0
int32_t g79 = 0; // 0x14001ddb4
int64_t g80 = 0; // 0x14001ddb8
int64_t g81 = 0; // 0x14001ddc0
int64_t g82 = 0; // 0x14001ddd8
int64_t g83 = 0; // 0x14001ddf0
char * g84; // 0x14001dea0
int64_t g85 = 0; // 0x14001dfb0
int32_t g86 = 0; // 0x14001e3b0
int64_t g87 = 0; // 0x14001e3b8
int64_t g88 = 0; // 0x14001e3c8
int64_t g89 = 0; // 0x14001e3d0
int64_t g90 = 0; // 0x14001e3d8
int128_t * g91 = NULL; // 0x14001e3e0
int128_t * g92 = NULL; // 0x14001e3e8
int64_t g93 = 0; // 0x14001e3f0
int32_t g94 = 0; // 0x14001e3f8
int32_t g95 = 0; // 0x14001e634
int64_t g96 = 0; // 0x14001e640
int64_t g97 = 0; // 0x14001e648
int64_t g98 = 0; // 0x14001e650
int64_t g99 = 0; // 0x14001e658
int64_t g100 = 0; // 0x14001e660
int64_t g101 = 0; // 0x14001e668
int32_t * g102 = NULL; // 0x14001e670
int64_t g103 = 0; // 0x14001e680
int64_t g104 = 0; // 0x14001e684
int64_t g105 = 0; // 0x14001e698
int64_t g106 = 0; // 0x14001e6a0
int64_t g107 = 0; // 0x14001e720
int64_t g108 = 0; // 0x14001e7a0
int64_t g109 = 0; // 0x14001e7b8
int32_t g110 = 0; // 0x14001ebf0
int64_t g111 = 0; // 0x14001ebf8
int64_t g112 = 0; // 0x14001ec00
int32_t g113;
int64_t * g37 = &g20; // 0x14001d1b0
int64_t * g38 = &g39; // 0x14001d310
// ------------------------ Functions -------------------------
// Address range: 0x140001000 - 0x140001017
int64_t function_140001000(int32_t a1, int64_t a2, int64_t a3) {
// 0x140001000
int64_t v1; // 0x140001000
function_140001020("Hello, world!\n", a2, a3, v1);
return 0;
}
// Address range: 0x140001020 - 0x14000108d
int64_t function_140001020(char * a1, int64_t a2, int64_t a3, int64_t a4) {
int64_t v1 = a2; // bp+16, 0x14000102e
int64_t * v2 = __acrt_iob_func(1); // 0x14000105b
int64_t v3 = function_1400010a0((int64_t)v2, (int64_t)a1, 0, (int64_t)&v1); // 0x140001072
return v3 & 0xffffffff;
}
// Address range: 0x140001090 - 0x140001098
int64_t function_140001090(void) {
// 0x140001090
return &g47;
}
// Address range: 0x1400010a0 - 0x14000110f
int64_t function_1400010a0(int64_t a1, int64_t a2, int64_t a3, int64_t a4) {
int64_t v1 = *(int64_t *)function_140001090(); // 0x1400010fc
return __stdio_common_vfprintf(v1, (struct _IO_FILE *)a1, (char *)a2, a3, a4);
}
// Address range: 0x140001110 - 0x1400011d8
int64_t function_140001110(void) {
// 0x140001110
function_1400048a0(1);
_set_fmode((int32_t)function_14000168c());
int64_t v1 = function_140001680(); // 0x14000112c
*(int32_t *)function_1400055b0() = (int32_t)v1;
if ((char)function_14000140c(1) != 0) {
// 0x140001148
function_140001908();
function_1400015bc(0x140001944);
int64_t ListHead = function_140001684() & 0xffffffff; // 0x14000115e
if ((int32_t)function_140004b48(ListHead) == 0) {
// 0x140001169
InitializeSListHead((int64_t *)ListHead);
if ((int32_t)function_1400016d0() != 0) {
// 0x140001177
__setusermatherr(0x140001680);
}
// 0x140001183
function_1400016a8();
function_1400016a8();
_configthreadlocale((int32_t)function_140001680());
if ((char)function_1400016a4() != 0) {
// 0x1400011a2
function_140005058();
}
// 0x1400011a7
function_140001680();
int64_t result = function_140001840(); // 0x1400011ac
if ((int32_t)result == 0) {
// 0x1400011b5
return result;
}
}
}
// 0x1400011bb
int64_t v2; // 0x140001110
function_1400016f4(7, v2);
__asm_int3();
__asm_int3();
__asm_int3();
function_1400016b4();
return 0;
}
// Address range: 0x1400011d8 - 0x1400011f1
int64_t function_1400011d8(void) {
// 0x1400011d8
int64_t lpTopLevelExceptionFilter; // 0x1400011d8
SetUnhandledExceptionFilter((int32_t (*)(struct _EXCEPTION_POINTERS *))lpTopLevelExceptionFilter);
return _set_new_mode((int32_t)function_140001680());
}
// Address range: 0x1400011f4 - 0x140001370
int64_t function_1400011f4(void) {
// 0x1400011f4
int64_t v1; // 0x1400011f4
if ((char)function_1400013c0(1) == 0) {
// 0x14000134b
function_1400016f4(7, v1);
// 0x140001356
function_1400016f4(7, v1);
// 0x140001360
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z((int32_t)&g113, (int64_t)&g113, (int64_t)&g113);
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z((int32_t)&g113, (int64_t)&g113, (int64_t)&g113);
return &g113;
}
int64_t v2 = __scrt_acquire_startup_lock(); // 0x14000121d
if (g48 == 1) {
// 0x140001356
function_1400016f4(7, v1);
// 0x140001360
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z((int32_t)&g113, (int64_t)&g113, (int64_t)&g113);
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z((int32_t)&g113, (int64_t)&g113, (int64_t)&g113);
return &g113;
}
int64_t v3 = g48; // 0x140001235
char v4 = 1; // 0x140001235
if (g48 == 0) {
// 0x140001237
g48 = 1;
if (_initterm_e((int32_t (**)())&g3, (int32_t (**)())&g4) != 0) {
// 0x14000133b
return 255;
}
// 0x140001262
_initterm((void (**)())&g1, (void (**)())&g2);
g48 = 2;
v3 = (int64_t)&g1;
v4 = 0;
}
// 0x140001289
__scrt_release_startup_lock(v3 & -256 | v2 & 255);
int64_t v5 = function_1400016dc(); // 0x140001290
if (*(int64_t *)v5 != 0) {
// 0x14000129e
if ((char)function_140001498(v5) != 0) {
// 0x1400012aa
function_1400124a0(0, 2, 0);
}
}
int64_t v6 = function_1400016e4(); // 0x1400012bc
int64_t * v7 = (int64_t *)v6; // 0x1400012c4
if (*v7 != 0) {
// 0x1400012ca
if ((char)function_140001498(v6) != 0) {
// 0x1400012d6
function_1400053a4(*v7);
}
}
char ** v8 = _get_initial_narrow_environment(); // 0x1400012de
int64_t v9 = *(int64_t *)function_14000545c(); // 0x1400012eb
uint32_t v10 = *(int32_t *)function_140005454(); // 0x1400012f9
int64_t v11 = v10; // 0x1400012f9
int64_t v12 = function_140001000(v10, v9, (int64_t)v8); // 0x1400012fb
if ((char)function_140001848(v11) == 0) {
// 0x140001360
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z((int32_t)&g113, (int64_t)&g113, (int64_t)&g113);
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z((int32_t)&g113, (int64_t)&g113, (int64_t)&g113);
return &g113;
}
if (v4 == 0) {
// 0x140001310
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z((int32_t)&g113, (int64_t)&g113, (int64_t)&g113);
}
// 0x140001315
function_140001554(v11 & 0xffffff00 | 1, 0);
// 0x14000133b
return v12 & 0xffffffff;
}
// Address range: 0x140001370 - 0x140001382
int64_t entry_point(void) {
// 0x140001370
function_1400015d4();
return function_1400011f4();
}
// Address range: 0x1400013c0 - 0x140001409
int64_t function_1400013c0(int64_t a1) {
char v1 = (int32_t)a1 == 0 ? 1 : *(char *)&g49; // 0x1400013d4
*(char *)&g49 = v1;
function_140001980(a1);
int64_t v2 = function_140001d38(); // 0x1400013e2
if ((char)v2 == 0) {
// 0x140001403
return v2 & -256;
}
int64_t v3 = function_140005ae0(); // 0x1400013ef
if ((char)v3 != 0) {
// 0x140001403
return v3 & -256 | 1;
}
// 0x140001403
return function_140001d60(0) & -256;
}
// Address range: 0x14000140c - 0x140001498
int64_t function_14000140c(int64_t a1) {
// 0x14000140c
if (g50 != 0) {
// 0x140001486
int64_t v1; // 0x14000140c
return v1 & -256 | 1;
}
uint32_t v2 = (int32_t)a1; // 0x14000141d
if (v2 >= 2) {
// 0x14000148c
int64_t v3; // 0x14000140c
function_1400016f4(5, v3);
__asm_int3();
return __asm_int3();
}
// 0x140001422
int64_t v4; // 0x14000140c
if (v2 != 0 | (int32_t)function_140001b2c() == 0) {
int128_t v5 = __asm_movdqa_9(g9); // 0x140001453
__asm_movdqu(*(int128_t *)&g51, v5);
g52 = -1;
__asm_movdqu(*(int128_t *)&g53, v5);
g54 = -1;
v4 = -1;
} else {
int64_t v6 = function_140005944(&g51); // 0x140001436
if ((int32_t)v6 != 0) {
// 0x140001486
return v6 & -256;
}
int64_t v7 = function_140005944(&g53); // 0x140001446
v4 = v7;
if ((int32_t)v7 != 0) {
// 0x140001486
return v7 & -256;
}
}
// 0x14000147d
g50 = 1;
// 0x140001486
return v4 & -256 | 1;
}
// Address range: 0x140001498 - 0x140001529
int64_t function_140001498(int64_t a1) {
// 0x140001498
if (*(int16_t *)0x140000000 != 0x5a4d) {
// 0x140001525
return function_14000152b((int32_t)a1);
}
int64_t v1 = (int64_t)*(int32_t *)0x14000003c; // 0x1400014ad
int64_t v2 = v1 + 0x140000000; // 0x1400014bb
if (*(int32_t *)v2 != 0x4550) {
// 0x140001525
return function_14000152b((int32_t)v2);
}
int64_t v3 = v1 + 0x140000018; // 0x1400014cb
if (*(int16_t *)v3 != 523) {
// 0x140001525
return function_14000152b((int32_t)v2);
}
uint64_t v4 = a1 - 0x140000000; // 0x1400014d1
int64_t v5 = v3 + (int64_t)*(int16_t *)(v1 + 0x140000014); // 0x1400014dc
uint16_t v6 = *(int16_t *)(v1 + 0x140000006); // 0x1400014df
int64_t v7 = v6; // 0x1400014df
if (v6 == 0) {
// 0x14000150e
return function_14000152b((int32_t)(5 * v7));
}
uint32_t v8 = *(int32_t *)(v5 + 12); // 0x1400014f4
int64_t v9 = v8; // 0x1400014f4
if (v4 >= v9) {
// 0x1400014fc
if (v4 < (int64_t)(*(int32_t *)(v5 + 8) + v8)) {
// break -> 0x14000150e
break;
}
}
int64_t v10 = v5 + 40; // 0x140001506
while (v10 != 40 * v7 + v5) {
int64_t v11 = v10;
v8 = *(int32_t *)(v11 + 12);
v9 = v8;
if (v4 >= v9) {
// 0x1400014fc
if (v4 < (int64_t)(*(int32_t *)(v11 + 8) + v8)) {
// break -> 0x14000150e
break;
}
}
// 0x140001506
v10 = v11 + 40;
}
// 0x14000150e
return function_14000152b((int32_t)v9);
}
// Address range: 0x140001529 - 0x14000152b
int64_t function_140001529(void) {
// 0x140001529
int64_t v1; // 0x140001529
return v1 & -256;
}
// Address range: 0x14000152b - 0x140001530
int64_t function_14000152b(int32_t a1) {
// 0x14000152b
int64_t result; // 0x14000152b
return result;
}
// Address range: 0x140001554 - 0x14000157d
int64_t function_140001554(int64_t a1, int32_t a2) {
// 0x140001554
if (*(char *)&g49 != 0) {
if ((char)a2 != 0) {
// 0x140001575
int64_t v1; // 0x140001554
return v1 & -256 | 1;
}
}
// 0x140001569
function_140005af4(a1);
// 0x140001575
return function_140001d60((int32_t)a1) & -256 | 1;
}
// Address range: 0x140001580 - 0x1400015ba
int64_t function_140001580(int64_t a1) {
// 0x140001580
int64_t v1; // 0x140001580
if (g51 != -1) {
// 0x14000159a
v1 = function_14000596c(&g51, a1);
} else {
// 0x140001593
v1 = function_1400058f8(a1);
}
// 0x1400015a9
return (int32_t)v1 == 0 ? a1 : 0;
}
// Address range: 0x1400015bc - 0x1400015d3
int64_t function_1400015bc(int64_t a1) {
// 0x1400015bc
return function_140001580(a1) == 0 ? 0xffffffff : 0;
}
// Address range: 0x1400015d4 - 0x140001680
int64_t function_1400015d4(void) {
int64_t v1 = g29; // 0x1400015f5
if (g29 == 0x2b992ddfa232) {
int64_t lpSystemTimeAsFileTime = 0; // bp+16, 0x1400015f7
GetSystemTimeAsFileTime((struct _FILETIME *)&lpSystemTimeAsFileTime);
int64_t v2 = lpSystemTimeAsFileTime ^ (int64_t)GetCurrentThreadId() ^ (int64_t)GetCurrentProcessId();
int64_t v3 = v2; // 0x140001626
int32_t lpPerformanceCount; // bp+24, 0x1400015d4
QueryPerformanceCounter((struct _LARGE_INTEGER *)&lpPerformanceCount);
int32_t v4 = lpPerformanceCount;
int64_t v5 = (v2 ^ (int64_t)&v3 ^ (int64_t)v4 ^ 0x100000000 * (int64_t)v4) & 0xffffffffffff; // 0x140001650
v1 = v5 == 0x2b992ddfa232 ? 0x2b992ddfa233 : v5;
g29 = v1;
}
int64_t result = -1 - v1;
g30 = result;
return result;
}
// Address range: 0x140001680 - 0x140001683
int64_t function_140001680(void) {
// 0x140001680
return 0;
}
// Address range: 0x140001684 - 0x14000168a
int64_t function_140001684(void) {
// 0x140001684
return 1;
}
// Address range: 0x14000168c - 0x140001692
int64_t function_14000168c(void) {
// 0x14000168c
return 0x4000;
}
// Address range: 0x140001694 - 0x1400016a2
void function_140001694(int64_t * ListHead) {
// 0x140001694
InitializeSListHead(ListHead);
}
// Address range: 0x1400016a4 - 0x1400016a7
int64_t function_1400016a4(void) {
// 0x1400016a4
int64_t v1; // 0x1400016a4
return v1 & -256 | 1;
}
// Address range: 0x1400016a8 - 0x1400016ab
int64_t function_1400016a8(void) {
// 0x1400016a8
int64_t result; // 0x1400016a8
return result;
}
// Address range: 0x1400016ac - 0x1400016b4
int64_t function_1400016ac(void) {
// 0x1400016ac
return &g55;
}
// Address range: 0x1400016b4 - 0x1400016cf
int64_t function_1400016b4(void) {
int64_t * v1 = (int64_t *)function_140001090(); // 0x1400016bd
*v1 = *v1 | 36;
int64_t result = function_1400016ac(); // 0x1400016c1
int64_t * v2 = (int64_t *)result; // 0x1400016c6
*v2 = *v2 | 2;
return result;
}
// Address range: 0x1400016d0 - 0x1400016dc
int64_t function_1400016d0(void) {
// 0x1400016d0
return g24 == 0;
}
// Address range: 0x1400016dc - 0x1400016e4
int64_t function_1400016dc(void) {
// 0x1400016dc
return &g112;
}
// Address range: 0x1400016e4 - 0x1400016ec
int64_t function_1400016e4(void) {
// 0x1400016e4
return &g111;
}
// Address range: 0x1400016ec - 0x1400016f4
int64_t function_1400016ec(int64_t a1) {
// 0x1400016ec
g56 = 0;
int64_t result; // 0x1400016ec
return result;
}
// Address range: 0x1400016f4 - 0x14000183f
int64_t function_1400016f4(int64_t a1, int64_t a2) {
// 0x1400016f4
if (IsProcessorFeaturePresent(23)) {
// 0x14000171a
__asm_int(41);
}
// 0x14000171e
function_1400016ec(3);
int64_t v1; // bp-1240, 0x1400016f4
int64_t v2; // 0x1400016f4
function_140001e50(&v1, 0, 1232, v2);
RtlCaptureContext((struct _CONTEXT *)&v1);
int64_t v3; // bp+16, 0x1400016f4
int64_t v4; // 0x1400016f4
struct _IMAGE_RUNTIME_FUNCTION_ENTRY * v5 = RtlLookupFunctionEntry(v4, &v3, NULL); // 0x140001757
int64_t v6; // 0x1400016f4
if (v5 != NULL) {
// 0x140001762
int64_t v7; // bp+24, 0x1400016f4
int64_t v8; // bp+32, 0x1400016f4
RtlVirtualUnwind(0, v3, v4, v5, (struct _CONTEXT *)&v1, (int64_t **)&v8, &v7, NULL);
v6 = (int64_t)v5;
}
// 0x14000179e
int64_t v9; // bp-1400, 0x1400016f4
function_140001e50(&v9, 0, 152, v6);
v9 = 0x40000015;
IsDebuggerPresent();
int64_t ExceptionInfo = &v9; // bp-1416, 0x1400017fa
SetUnhandledExceptionFilter(NULL);
int32_t v10 = UnhandledExceptionFilter((struct _EXCEPTION_POINTERS *)&ExceptionInfo); // 0x140001818
int64_t v11 = v10; // 0x140001818
int64_t result = v11; // 0x140001820
if (v10 == 0) {
// 0x140001826
result = function_1400016ec(v11 + 3 & 0xffffffff);
}
// 0x14000182e
return result;
}
// Address range: 0x140001840 - 0x140001845
int64_t function_140001840(void) {
// 0x140001840
return function_140001680();
}
// Address range: 0x140001848 - 0x140001899
int64_t function_140001848(int64_t a1) {
int64_t * v1 = GetModuleHandleW(NULL); // 0x14000184e
int64_t v2 = (int64_t)v1; // 0x14000184e
if (v1 == NULL || *(int16_t *)v1 != 0x5a4d) {
// 0x140001894
return v2 & -256;
}
int64_t v3 = (int64_t)*(int32_t *)(v2 + 60) + v2; // 0x140001867
if (*(int32_t *)v3 != 0x4550) {
// 0x140001894
return v2 & -256;
}
// 0x140001872
if (*(int16_t *)(v3 + 24) != 523 || *(int32_t *)(v3 + 132) < 15) {
// 0x140001894
return 512;
}
// 0x140001894
return (int64_t)(*(int32_t *)(v3 + 248) != 0) | 512;
}
// Address range: 0x14000189c - 0x1400018aa
int32_t (*function_14000189c(int32_t (*lpTopLevelExceptionFilter)(struct _EXCEPTION_POINTERS *)))(struct _EXCEPTION_POINTERS *) {
// 0x14000189c
return SetUnhandledExceptionFilter(lpTopLevelExceptionFilter);
}
// Address range: 0x1400018ac - 0x140001908
int64_t function_1400018ac(int64_t a1) {
// 0x1400018ac
if ((int32_t)a1 != -0x1f928c9d || *(int32_t *)(a1 + 24) != 4) {
// 0x1400018e0
return 0;
}
uint32_t v1 = *(int32_t *)(a1 + 32); // 0x1400018ca
switch (v1) {
case 0x19930522: {
}
case 0x19930521: {
}
case 0x19930520: {
}
case 0x1994000: {
// 0x1400018ed
*(int64_t *)function_140001df0() = a1;
*(int64_t *)function_140001e04() = *(int64_t *)(a1 + 8);
int64_t v2; // 0x1400018ac
terminate(a1, (int64_t)v1, v2);
__asm_int3();
return __asm_int3();
}
}
// 0x1400018e0
return 0;
}
// Address range: 0x140001908 - 0x140001944
int64_t function_140001908(void) {
// 0x140001939
int64_t result; // 0x140001908
return result;
}
// Address range: 0x140001944 - 0x140001980
int64_t function_140001944(void) {
// 0x140001975
int64_t result; // 0x140001944
return result;
}
// Address range: 0x140001980 - 0x140001b2c
int64_t function_140001980(int64_t a1) {
struct struct2 v1; // 0x140001993
struct struct1 v2; // 0x1400019ba
struct struct3 v3; // 0x140001a4a
// 0x140001980
v1 = __asm_cpuid(0);
v2 = __asm_cpuid_6(1);
int32_t v4; // 0x140001980
if ((v1.e3 ^ 0x49656e69 || v1.e2 ^ 0x6c65746e || v1.e1 ^ 0x756e6547) != 0) {
// 0x140001a34
v4 = g57;
goto lab_0x140001a3b;
} else {
// 0x1400019d9
g28 = -1;
int32_t v5 = v2.e0 & 0xfff3ff0;
g27 = 0x8000;
switch (v5) {
case 0x106c0: {
goto lab_0x140001a20;
}
case 0x20660: {
goto lab_0x140001a20;
}
case 0x20670: {
goto lab_0x140001a20;
}
default: {
if (v5 < 0x30671) {
if ((1 << (int64_t)(v5 + 48 & 48) & 0x100010001) == 0) {
// 0x140001a34
v4 = g57;
goto lab_0x140001a3b;
} else {
goto lab_0x140001a20;
}
} else {
// 0x140001a34
v4 = g57;
goto lab_0x140001a3b;
}
}
}
}
lab_0x140001a3b:;
int32_t v6 = v2.e3; // 0x140001a46
int64_t v7 = 0; // 0x140001a46
if (v1.e0 >= 7) {
// 0x140001a48
v3 = __asm_cpuid_7(7);
uint32_t v8 = v3.e1; // 0x140001a4a
int32_t v9 = v3.e3; // 0x140001a4a
int64_t v10 = v8; // 0x140001a4f
v6 = v9;
v7 = v10;
if ((v8 & 512) != 0) {
// 0x140001a64
g57 = v4 | 2;
v6 = v9;
v7 = v10;
}
}
int64_t v11 = v2.e2; // 0x1400019cd
g25 = 1;
g26 = 2;
if ((v11 & 0x100000) == 0) {
// 0x140001b1a
return 0;
}
// 0x140001a89
g25 = 2;
g26 = 6;
if ((v11 & 0x8000000) == 0) {
// 0x140001b1a
return 0;
}
if ((v11 & 0x10000000) == 0) {
// 0x140001b1a
return 0;
}
int64_t v12 = __asm_xgetbv(0, v6); // 0x140001aa9
if ((v12 & 6) != 6) {
// 0x140001b1a
return 0;
}
int32_t v13 = g26; // 0x140001ac3
g25 = 3;
g26 = v13 | 8;
if ((v7 & 32) == 0) {
// 0x140001b1a
return 0;
}
// 0x140001ae2
g25 = 5;
g26 = v13 | 40;
if ((v7 & 0xd0030000) == 0xd0030000 == (char)v12 > 223) {
// 0x140001b0d
g26 = v13 | 104;
g25 = 6;
}
// 0x140001b1a
return 0;
lab_0x140001a20:;
int32_t v14 = g57 | 1; // 0x140001a27
g57 = v14;
v4 = v14;
goto lab_0x140001a3b;
}
// Address range: 0x140001b2c - 0x140001b38
int64_t function_140001b2c(void) {
// 0x140001b2c
return g110 != 0;
}
// Address range: 0x140001b40 - 0x140001d37
int64_t function_140001b40(int64_t a1, int64_t a2, int64_t a3, int64_t a4) {
// 0x140001b40
function_140002224(a3);
int64_t v1 = *(int64_t *)(a4 + 8); // 0x140001b70
int64_t v2 = *(int64_t *)(a4 + 56); // 0x140001b77
uint64_t v3 = a4 - v1; // 0x140001b7b
int64_t v4 = a1 + 4; // 0x140001b7e
int32_t * v5 = (int32_t *)(a4 + 72); // 0x140001b82
uint32_t v6 = *v5; // 0x140001b82
int64_t v7 = v6; // 0x140001b82
if ((*(char *)v4 & 102) != 0) {
int32_t * v8 = (int32_t *)v2; // 0x140001d0a
uint32_t v9 = *v8; // 0x140001d0a
if (v9 <= v6) {
// 0x140001d19
return 1;
}
uint64_t v10 = *(int64_t *)(a4 + 32) - v1; // 0x140001c6c
int64_t v11 = v2 + 4; // 0x140001c79
int64_t v12 = v2 + 8;
int64_t v13 = v2 + 12;
int64_t v14 = v2 + 16;
int64_t v15 = 16 * v7; // 0x140001c74
int32_t v16 = v9; // 0x140001c80
int32_t * v17; // 0x140001b40
int64_t v18; // 0x140001b40
int64_t v19; // 0x140001b40
int32_t v20; // 0x140001c8f
uint32_t v21; // 0x140001cdd
int32_t * v22; // 0x140001b40
int64_t v23; // 0x140001ca0
int64_t v24; // 0x140001cd0
int64_t v25; // 0x140001cd0
if (v3 >= (int64_t)*(int32_t *)(v15 + v11)) {
// 0x140001c86
v16 = v9;
if (v3 < (int64_t)*(int32_t *)(v15 + v12)) {
// 0x140001c8f
v20 = *(int32_t *)v4;
v17 = (int32_t *)(v15 + v14);
if ((v20 & 32) != 0) {
// 0x140001ca0
v22 = (int32_t *)(v15 + v13);
v18 = 0;
v23 = 16 * v18;
if (v10 >= (int64_t)*(int32_t *)(v23 + v11)) {
// 0x140001cb0
if (v10 < (int64_t)*(int32_t *)(v23 + v12)) {
// 0x140001cba
if (*(int32_t *)(v23 + v14) == *v17) {
// 0x140001cc5
if (*(int32_t *)(v23 + v13) == *v22) {
// break -> 0x140001cd8
break;
}
}
}
}
// 0x140001cd0
v24 = v18 + 1;
v25 = v24 & 0xffffffff;
v19 = v25;
while (v9 > (int32_t)v24) {
// 0x140001ca0
v18 = v25;
v23 = 16 * v18;
if (v10 >= (int64_t)*(int32_t *)(v23 + v11)) {
// 0x140001cb0
if (v10 < (int64_t)*(int32_t *)(v23 + v12)) {
// 0x140001cba
if (*(int32_t *)(v23 + v14) == *v17) {
// 0x140001cc5
v19 = v18;
if (*(int32_t *)(v23 + v13) == *v22) {
// break -> 0x140001cd8
break;
}
}
}
}
// 0x140001cd0
v24 = v18 + 1;
v25 = v24 & 0xffffffff;
v19 = v25;
}
// 0x140001cd8
if (v9 != (int32_t)v19) {
// break -> 0x140001d19
break;
}
}
// 0x140001cdd
v21 = *v17;
if (v21 == 0) {
// 0x140001cf1
*v5 = v6 + 1;
v16 = *v8;
} else {
// 0x140001ce5
v16 = v9;
if ((v20 & 32) != 0 == v10 == (int64_t)v21) {
// break -> 0x140001d19
break;
}
}
}
}
int32_t v26 = v16; // 0x140001d0a
int64_t v27 = v7 + 1; // 0x140001d08
int32_t v28 = v27; // 0x140001d0c
int64_t v29 = v27 & 0xffffffff; // 0x140001d0e
while (v26 > v28) {
int32_t v30 = v26;
v15 = 16 * v29;
v16 = v30;
if (v3 >= (int64_t)*(int32_t *)(v15 + v11)) {
// 0x140001c86
v16 = v30;
if (v3 < (int64_t)*(int32_t *)(v15 + v12)) {
int32_t v31 = v28;
v20 = *(int32_t *)v4;
v17 = (int32_t *)(v15 + v14);
if ((v20 & 32) != 0) {
// 0x140001ca0
v22 = (int32_t *)(v15 + v13);
v18 = 0;
v23 = 16 * v18;
if (v10 >= (int64_t)*(int32_t *)(v23 + v11)) {
// 0x140001cb0
if (v10 < (int64_t)*(int32_t *)(v23 + v12)) {
// 0x140001cba
if (*(int32_t *)(v23 + v14) == *v17) {
// 0x140001cc5
if (*(int32_t *)(v23 + v13) == *v22) {
// break -> 0x140001cd8
break;
}
}
}
}
// 0x140001cd0
v24 = v18 + 1;
v25 = v24 & 0xffffffff;
v19 = v25;
while (v30 > (int32_t)v24) {
// 0x140001ca0
v18 = v25;
v23 = 16 * v18;
if (v10 >= (int64_t)*(int32_t *)(v23 + v11)) {
// 0x140001cb0
if (v10 < (int64_t)*(int32_t *)(v23 + v12)) {
// 0x140001cba
if (*(int32_t *)(v23 + v14) == *v17) {
// 0x140001cc5
v19 = v18;
if (*(int32_t *)(v23 + v13) == *v22) {
// break -> 0x140001cd8
break;
}
}
}
}
// 0x140001cd0
v24 = v18 + 1;
v25 = v24 & 0xffffffff;
v19 = v25;
}
// 0x140001cd8
if (v30 != (int32_t)v19) {
// break -> 0x140001d19
break;
}
}
// 0x140001cdd
v21 = *v17;
if (v21 == 0) {
// 0x140001cf1
*v5 = v31 + 1;
v16 = *v8;
} else {
// 0x140001ce5
v16 = v30;
if ((v20 & 32) != 0 == v10 == (int64_t)v21) {
// break -> 0x140001d19
break;
}
}
}
}
// 0x140001d08
v26 = v16;
v27 = v29 + 1;
v28 = v27;
v29 = v27 & 0xffffffff;
}
// 0x140001d19
return 1;
}
int32_t * v32 = (int32_t *)v2; // 0x140001b96
uint32_t v33 = *v32; // 0x140001b96
if (v33 <= v6) {
// 0x140001d19
return 1;
}
// 0x140001b9e
int64_t v34; // 0x140001b40
int64_t * v35 = (int64_t *)(v34 & 0xffffffff);
int32_t v36 = v33; // 0x140001b96
int64_t v37 = v7; // 0x140001b40
int32_t v38; // 0x140001b40
int64_t result; // 0x140001b40
int32_t * v39; // 0x140001bbd
while (true) {
lab_0x140001b9e:;
int32_t v40 = v36;
int64_t v41 = 16 * v37 + v2;
v38 = v40;
if (v3 < (int64_t)*(int32_t *)(v41 + 4)) {
goto lab_0x140001c5a;
} else {
// 0x140001bb0
v38 = v40;
if (v3 >= (int64_t)*(int32_t *)(v41 + 8)) {
goto lab_0x140001c5a;
} else {
// 0x140001bbd
v39 = (int32_t *)(v41 + 16);
v38 = v40;
if (*v39 == 0) {
goto lab_0x140001c5a;
} else {
int32_t v42 = *(int32_t *)(v41 + 12); // 0x140001bc8
if (v42 == 1) {
goto lab_0x140001be6;
} else {
int32_t v43 = v42 + (int32_t)v1; // 0x140001be0
result = 0;
if (v43 < 0) {
// break -> 0x140001d19
break;
}
// 0x140001be4
v38 = v40;
if (v43 == 0) {
goto lab_0x140001c5a;
} else {
goto lab_0x140001be6;
}
}
}
}
}
}
// 0x140001d19
return result;
lab_0x140001c5a:
// 0x140001c5a
v36 = v38;
int64_t v44 = v37 + 1; // 0x140001c5a
v37 = v44 & 0xffffffff;
result = 1;
if (v36 <= (int32_t)v44) {
return result;
}
goto lab_0x140001b9e;
lab_0x140001be6:
if ((int32_t)v34 == -0x1f928c9d) {
// 0x140001bf9
if ((int32_t)function_140011dc0(&g10) != 0) {
// 0x140001c09
function_140001d7c(a1, 1);
}
}
// 0x140001c17
_NLG_Notify(v1 + (int64_t)*v39, a2, 1);
int64_t v45 = *(int64_t *)(a4 + 64); // 0x140001c2c
uint32_t v46 = *v39; // 0x140001c33
int64_t v47 = *(int64_t *)(a4 + 40); // 0x140001c46
RtlUnwindEx((int64_t *)a2, (int64_t *)(v1 + (int64_t)v46), (struct _EXCEPTION_RECORD *)a1, v35, (struct _CONTEXT *)v47, (struct _UNWIND_HISTORY_TABLE *)v45);
function_140002220(a2);
v38 = *v32;
goto lab_0x140001c5a;
}
// Address range: 0x140001d38 - 0x140001d60
int64_t function_140001d38(void) {
int64_t v1 = __vcrt_initialize_locks(); // 0x140001d3c
if ((char)v1 == 0) {
// 0x140001d5b
return v1 & -256;
}
int64_t v2 = function_140002358(); // 0x140001d49
if ((char)v2 != 0) {
// 0x140001d5b
return v2 & -256 | 1;
}
// 0x140001d5b
return __acrt_uninitialize_locks() & -256;
}
// Address range: 0x140001d60 - 0x140001d79
int64_t function_140001d60(int32_t a1) {
int64_t v1; // 0x140001d60
if ((char)a1 == 0) {
// 0x140001d68
__acrt_uninitialize_ptd();
v1 = __acrt_uninitialize_locks();
}
// 0x140001d72
return v1 & -256 | 1;
}
// Address range: 0x140001d7c - 0x140001de9
int64_t function_140001d7c(int64_t a1, int64_t a2) {
// 0x140001d7c
int64_t result; // 0x140001d7c
if (a1 == 0) {
// 0x140001de8
return result;
}
if ((int32_t)a1 != -0x1f928c9d || *(int32_t *)(a1 + 24) != 4) {
// 0x140001de8
return result;
}
uint32_t result2 = *(int32_t *)(a1 + 32) - 0x19930520; // 0x140001d9a
if (result2 >= 3) {
// 0x140001de8
return result2;
}
int64_t result3 = *(int64_t *)(a1 + 48); // 0x140001da4
if (result3 == 0) {
// 0x140001de8
return 0;
}
int32_t v1 = *(int32_t *)(result3 + 4); // 0x140001dad
int64_t v2 = v1; // 0x140001dad
if (v1 != 0) {
// 0x140001de8
return function_140001dec(*(int64_t *)(a1 + 40), *(int64_t *)(a1 + 56) + v2);
}
// 0x140001dc6
if ((*(char *)result3 & 16) == 0) {
// 0x140001de8
return result3;
}
int64_t v3 = *(int64_t *)(a1 + 40); // 0x140001dcb
int64_t v4 = *(int64_t *)v3; // 0x140001dcf
result = v3;
if (v4 != 0) {
// 0x140001dd7
int64_t v5; // 0x140001d7c
result = function_1400124a0((int32_t)v4, v2, (int32_t)v5);
}
// 0x140001de8
return result;
}
// Address range: 0x140001dec - 0x140001def
int64_t function_140001dec(int64_t a1, int64_t a2) {
// 0x140001dec
int64_t result; // 0x140001dec
return result;
}
// Address range: 0x140001df0 - 0x140001e02
int64_t function_140001df0(void) {
// 0x140001df0
return __vcrt_getptd() + 32;
}
// Address range: 0x140001e04 - 0x140001e16
int64_t function_140001e04(void) {
// 0x140001e04
return __vcrt_getptd() + 40;
}
// Address range: 0x140001e30 - 0x140001e40
int64_t function_140001e30(int64_t a1, int64_t a2, int64_t a3, int64_t result) {
// 0x140001e30
__asm_rep_stosb_memset((char *)a1, (char)a2, a3);
return result;
}
// Address range: 0x140001e50 - 0x14000219b
int64_t function_140001e50(int64_t * a1, int32_t a2, uint64_t a3, int64_t a4) {
int64_t result = (int64_t)a1;
int64_t v1 = result;
int64_t v2 = a2 & 255; // 0x140001e5d
int128_t v3 = __asm_movq(0x101010101010101 * v2); // 0x140001e6e
if (a3 < 16) {
// 0x140001e7d
return result;
}
int128_t v4 = __asm_punpcklqdq(v3, v3); // 0x140001f00
if (a3 < 33) {
// 0x140001f0a
__asm_movdqu(*(int128_t *)&v1, v4);
__asm_movdqu(*(int128_t *)(a3 - 16 + v1), v4);
return result;
}
// 0x140001f16
if (g25 < 3) {
int64_t result2 = result; // 0x140002107
if (g27 < a3) {
// 0x140002109
result2 = result;
if ((*(char *)&g57 & 2) != 0) {
result2 = function_140001e30(v1, v2, a3, result);
}
}
int64_t v5 = v1 | -16; // 0x14000211d
int64_t v6 = v1 - v5; // 0x140002121
v1 = v6;
int64_t v7 = v5 + a3; // 0x140002127
int64_t v8 = v6; // 0x140002131
if (v7 < 129) {
// 0x140001e7d
return result2;
}
for (int64_t i = v7; i >= 255; i -= 128) {
// 0x140002140
__asm_movdqa(*(int128_t *)v8, v4);
__asm_movdqa(*(int128_t *)(v1 + 16), v4);
__asm_movdqa(*(int128_t *)(v1 + 32), v4);
__asm_movdqa(*(int128_t *)(v1 + 48), v4);
__asm_movdqa(*(int128_t *)(v1 + 64), v4);
__asm_movdqa(*(int128_t *)(v1 + 80), v4);
__asm_movdqa(*(int128_t *)(v1 + 96), v4);
__asm_movdqa(*(int128_t *)(v1 + 112), v4);
v8 = v1 + 128;
v1 = v8;
}
// 0x140001e7d
return result2;
}
int64_t result3 = result; // 0x140001f2a
if (g28 >= a3 && g27 < a3) {
// 0x140001f35
result3 = result;
if ((*(char *)&g57 & 2) != 0) {
result3 = function_140001e30(v1, v2, a3, result);
}
}
// 0x140001f42
int256_t v9; // 0x140001e50
int256_t v10 = __asm_vinsertf128(v9, v4, 1); // 0x140001f42
int64_t v11 = v1 | -32; // 0x140001f4f
int64_t v12 = v1 - v11; // 0x140001f53
v1 = v12;
int64_t v13 = v11 + a3; // 0x140001f59
if (v13 < 257) {
// 0x140001e7d
return result3;
}
int64_t v14 = v13; // 0x140001f6c
int64_t v15 = v13; // 0x140001f6c
if (v13 > g28) {
__asm_vmovntdq(*(int256_t *)v12, v10);
__asm_vmovntdq(*(int256_t *)(v1 + 32), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 64), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 96), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 128), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 160), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 192), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 224), v10);
int64_t v16 = v1 + 256; // 0x140002073
v1 = v16;
v15 -= 256;
while (v15 >= 256) {
// 0x140002040
__asm_vmovntdq(*(int256_t *)v16, v10);
__asm_vmovntdq(*(int256_t *)(v1 + 32), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 64), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 96), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 128), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 160), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 192), v10);
__asm_vmovntdq(*(int256_t *)(v1 + 224), v10);
v16 = v1 + 256;
v1 = v16;
v15 -= 256;
}
// 0x140001e7d
return result3;
}
__asm_vmovdqa(*(int256_t *)v12, v10);
__asm_vmovdqa(*(int256_t *)(v1 + 32), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 64), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 96), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 128), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 160), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 192), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 224), v10);
int64_t v17 = v1 + 256; // 0x140001fb3
v1 = v17;
v14 -= 256;
while (v14 >= 256) {
// 0x140001f80
__asm_vmovdqa(*(int256_t *)v17, v10);
__asm_vmovdqa(*(int256_t *)(v1 + 32), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 64), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 96), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 128), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 160), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 192), v10);
__asm_vmovdqa(*(int256_t *)(v1 + 224), v10);
v17 = v1 + 256;
v1 = v17;
v14 -= 256;
}
// 0x140001e7d
return result3;
}
// Address range: 0x14000219b - 0x1400021d8
int64_t function_14000219b(int64_t a1) {
// 0x14000219b
int64_t v1; // 0x14000219b
int64_t v2 = v1 + a1;
int128_t v3; // 0x14000219b
__asm_movdqu(*(int128_t *)(v2 - 128), v3);
__asm_movdqu(*(int128_t *)(v2 - 112), v3);
__asm_movdqu(*(int128_t *)(v2 - 96), v3);
__asm_movdqu(*(int128_t *)(v2 - 80), v3);
__asm_movdqu(*(int128_t *)(v2 - 64), v3);
__asm_movdqu(*(int128_t *)(v2 - 48), v3);
__asm_movdqu(*(int128_t *)(v2 - 32), v3);
int64_t v4; // 0x14000219b
__asm_movdqu(*(int128_t *)(a1 - 16 + v4), v3);
int64_t v5; // 0x14000219b
int128_t result = *(int128_t *)&v5; // 0x1400021d3
__asm_movdqu(result, v3);
return result;
}
// Address range: 0x140002220 - 0x140002221
int64_t function_140002220(int64_t a1) {
// 0x140002220
int64_t result; // 0x140002220
return result;
}
// Address range: 0x140002224 - 0x14000225b
int64_t function_140002224(int64_t a1) {
// 0x140002224
return 0x1400016a8;
}
// Address range: 0x140002298 - 0x140002357
int64_t function_140002298(void) {
// 0x140002298
if (g31 == -1) {
// 0x140002347
return 0;
}
int32_t errorCode = GetLastError(); // 0x1400022b7
function_140002624(g31);
int64_t result = 0; // 0x1400022c5
int64_t * v1; // 0x140002298
int32_t v2; // 0x140002298
int64_t result2; // 0x140002298
int64_t v3; // 0x1400022e5
switch (result) {
case -1: {
goto lab_0x1400022da;
}
case 0: {
// 0x1400022df
v3 = function_14000266c(g31, -1);
if ((int32_t)v3 == 0) {
// 0x14000233c
SetLastError(errorCode);
// 0x140002347
return 0;
}
// 0x1400022ee
v2 = g31;
if (v3 == 0) {
goto lab_0x14000232d;
} else {
// 0x140002309
if ((int32_t)function_14000266c(g31, v3) == 0) {
// 0x140002327
v2 = g31;
goto lab_0x14000232d;
} else {
// 0x140002315
*(int32_t *)(v3 + 120) = -2;
v1 = NULL;
result2 = v3;
goto lab_0x140002334;
}
}
}
default: {
lab_0x1400022da:
// 0x14000233c
SetLastError(errorCode);
// 0x140002347
return result;
}
}
lab_0x14000232d:
// 0x14000232d
function_14000266c(v2, 0);
v1 = (int64_t *)v3;
result2 = 0;
goto lab_0x140002334;
lab_0x140002334:
// 0x140002334
free(v1);
// 0x14000233c
SetLastError(errorCode);
// 0x140002347
return result2;
}
// Address range: 0x140002358 - 0x14000239f
int64_t function_140002358(void) {
int64_t v1 = function_140002594(0x14000225c); // 0x140002363
int32_t v2 = v1; // 0x140002368
g31 = v2;
if (v2 == -1) {
// 0x14000239a
return v1 & -256;
}
int64_t v3 = function_14000266c(v2, (int64_t)&g58); // 0x14000237c
if ((int32_t)v3 == 0) {
// 0x14000239a
return __acrt_uninitialize_ptd() & -256;
}
// 0x140002385
*(int32_t *)&g59 = -2;
// 0x14000239a
return v3 & -256 | 1;
}
// Address range: 0x140002444 - 0x140002592
int64_t function_140002444(uint32_t a1, char * lpProcName, int64_t * a3, char * a4, int64_t a5) {
int64_t * v1 = (int64_t *)(8 * (int64_t)a1 + 0x14001dbf0); // 0x140002476
int64_t result = *v1; // 0x140002476
if (result == -1) {
// 0x140002575
return 0;
}
// 0x140002488
if (result != 0) {
// 0x140002575
return result;
}
int64_t v2 = (int64_t)a3; // 0x140002494
if ((int64_t *)a4 == a3) {
// 0x14000256b
*v1 = -1;
// 0x140002575
return 0;
}
int64_t * hLibModule; // 0x140002444
int64_t v3; // 0x140002444
int64_t hModule; // 0x140002444
int64_t * v4; // 0x140002444
while (true) {
int64_t v5 = 8 * (int64_t)*(int32_t *)v2; // 0x14000249d
v4 = (int64_t *)(v5 + 0x14001dbd8);
int64_t v6 = *v4; // 0x14000249d
if (v6 == 0) {
int16_t * lpLibFileName = (int16_t *)*(int64_t *)(v5 + 0x1400140f8); // 0x1400024c9
int64_t * v7 = LoadLibraryExW(lpLibFileName, NULL, 2048); // 0x1400024c9
int64_t v8 = (int64_t)v7;
v3 = v8;
hLibModule = v7;
if (v7 != NULL) {
// break -> 0x14000252d
break;
}
// 0x1400024d7
if (GetLastError() == 87) {
// 0x1400024e2
if (wcsncmp(lpLibFileName, L"api-ms-", (int32_t)v8 + 7) != 0) {
int64_t * v9 = LoadLibraryExW(lpLibFileName, NULL, 0); // 0x140002501
if (v9 != NULL) {
// 0x14000252d
v3 = (int64_t)v9;
hLibModule = v9;
goto lab_0x14000252d_2;
}
}
}
// 0x14000250f
*v4 = -1;
} else {
// 0x1400024ab
hModule = v6;
if (v6 != -1) {
goto lab_0x14000254d;
}
}
// 0x140002521
v2 += 4;
if (v2 == (int64_t)a4) {
// 0x14000256b
*v1 = -1;
// 0x140002575
return 0;
}
}
goto lab_0x14000252d_2;
lab_0x14000252d_2:
// 0x14000252d
*v4 = v3;
hModule = v3;
if (*v4 != 0) {
// 0x140002544
FreeLibrary(hLibModule);
hModule = v3;
}
lab_0x14000254d:;
int32_t (*func)() = GetProcAddress((int64_t *)hModule, lpProcName); // 0x140002553
if (func == NULL) {
// 0x14000256b
*v1 = -1;
// 0x140002575
return 0;
}
int64_t result2 = (int64_t)func; // 0x140002553
*v1 = result2;
// 0x140002575
return result2;
}
// Address range: 0x140002594 - 0x1400025d9
int64_t function_140002594(int64_t a1) {
// 0x140002594
int64_t v1; // 0x140002594
if (function_140002444(0, "FlsAlloc", &g12, "FlsAlloc", v1) == 0) {
// 0x1400025cd
return TlsAlloc();
}
int64_t result = function_1400124a0((int32_t)a1, (int64_t)"FlsAlloc", (int32_t)&g12); // 0x1400025c6
return result;
}
// Address range: 0x1400025dc - 0x140002622
int64_t function_1400025dc(int64_t a1) {
// 0x1400025dc
int64_t v1; // 0x1400025dc
int64_t v2 = function_140002444(1, "FlsFree", &g13, "FlsFree", v1); // 0x1400025fe
int32_t dwTlsIndex = a1;
if (v2 == 0) {
// 0x140002616
return TlsFree(dwTlsIndex);
}
// 0x14000260a
return function_1400124a0(dwTlsIndex, (int64_t)"FlsFree", (int32_t)&g13);
}
// Address range: 0x140002624 - 0x14000266a
int64_t function_140002624(int32_t dwTlsIndex) {
// 0x140002624
int64_t v1; // 0x140002624
if (function_140002444(2, "FlsGetValue", &g14, "FlsGetValue", v1) == 0) {
// 0x14000265e
return (int64_t)TlsGetValue(dwTlsIndex);
}
int64_t result = function_1400124a0(dwTlsIndex, (int64_t)"FlsGetValue", (int32_t)&g14); // 0x140002657
return result;
}
// Address range: 0x14000266c - 0x1400026bd
int64_t function_14000266c(int32_t dwTlsIndex, int64_t lpTlsValue) {
// 0x14000266c
int64_t result; // 0x14000266c
int64_t v1; // 0x14000266c
if (function_140002444(3, "FlsSetValue", &g15, "FlsSetValue", v1) == 0) {
// 0x1400026ac
result = TlsSetValue(dwTlsIndex, (int64_t *)lpTlsValue);
} else {
// 0x1400026a4
result = function_1400124a0(dwTlsIndex, lpTlsValue, (int32_t)&g15);
}
// 0x1400026b2
return result;
}
// Address range: 0x1400026c0 - 0x140002721
int64_t function_1400026c0(int64_t lpCriticalSection, int64_t dwSpinCount, int64_t a3) {
// 0x1400026c0
int64_t v1; // 0x1400026c0
int64_t v2 = function_140002444(4, "InitializeCriticalSectionEx", &g16, "InitializeCriticalSectionEx", v1); // 0x1400026f1
int64_t result; // 0x1400026c0
if (v2 == 0) {
// 0x14000270b
result = InitializeCriticalSectionAndSpinCount((struct _RTL_CRITICAL_SECTION *)lpCriticalSection, (int32_t)dwSpinCount);
} else {
// 0x140002700
result = function_1400124a0((int32_t)lpCriticalSection, dwSpinCount & 0xffffffff, (int32_t)a3);
}
// 0x140002711
return result;
}
// Address range: 0x140002740 - 0x140002750
int64_t function_140002740(int64_t a1, int64_t a2, int64_t a3) {
// 0x140002740
__asm_rep_movsb_memcpy((char *)a1, (char *)a2, a3);
int64_t result; // 0x140002740
return result;
}
// Address range: 0x140002760 - 0x140002dd5
int64_t function_140002760(int64_t result, uint64_t a2, uint64_t a3, int64_t a4) {
int64_t v1 = a2;
int64_t v2 = result;
if (a3 < 16) {
// 0x140002774
return result;
}
if (a3 < 33) {
int128_t v3 = __asm_movdqu_11(*(int128_t *)&v1); // 0x140002886
int64_t v4 = a3 - 16;
int128_t v5 = __asm_movdqu_11(*(int128_t *)(v1 + v4)); // 0x14000288a
__asm_movdqu(*(int128_t *)&v2, v3);
__asm_movdqu(*(int128_t *)(v2 + v4), v5);
return result;
}
if (a2 < result == a3 + a2 > result) {
// 0x140002cf0
v1 = a2 - result;
int64_t v6 = a3 - 16;
int64_t v7 = v6 + result; // 0x140002cfc
int128_t v8 = __asm_movups(*(int128_t *)(v6 + a2)); // 0x140002cfc
v2 = v7;
int128_t v9 = v8; // 0x140002d0c
int64_t v10 = v6; // 0x140002d0c
if ((v7 & 15) != 0) {
int64_t v11 = v7 & -16; // 0x140002d11
v2 = v11;
int128_t v12 = __asm_movups(v8); // 0x140002d15
v9 = __asm_movups(*(int128_t *)(v1 + v11));
__asm_movups_10(*(int128_t *)v7, v12);
v10 = v11 - result;
}
int128_t v13 = v9; // 0x140002d2c
int64_t v14 = v10; // 0x140002d2c
if (v10 >= 128) {
// 0x140002d2e
*(int128_t *)v2 = (int128_t)__asm_movaps(v9);
int64_t v15 = v10 / 128; // 0x140002d31
int128_t v16 = __asm_movups(*(int128_t *)(v2 - 16 + v1)); // 0x140002d47
int128_t v17 = __asm_movups(*(int128_t *)(v2 - 32 + v1)); // 0x140002d4c
int64_t v18 = v2; // 0x140002d51
int64_t v19 = v18 - 128; // 0x140002d51
v2 = v19;
*(int128_t *)(v18 - 16) = (int128_t)__asm_movaps(v16);
*(int128_t *)(v18 - 32) = (int128_t)__asm_movaps(v17);
int64_t v20 = v18 - 48; // 0x140002d60
int128_t v21 = __asm_movups(*(int128_t *)(v1 + v20)); // 0x140002d60
int64_t v22 = v18 - 64; // 0x140002d65
int128_t v23 = __asm_movups(*(int128_t *)(v1 + v22)); // 0x140002d65
v15--;
*(int128_t *)v20 = (int128_t)__asm_movaps(v21);
*(int128_t *)v22 = (int128_t)__asm_movaps(v23);
int64_t v24 = v18 - 80; // 0x140002d75
int128_t v25 = __asm_movups(*(int128_t *)(v1 + v24)); // 0x140002d75
int64_t v26 = v18 - 96; // 0x140002d7a
int128_t v27 = __asm_movups(*(int128_t *)(v1 + v26)); // 0x140002d7a
*(int128_t *)v24 = (int128_t)__asm_movaps(v25);
*(int128_t *)v26 = (int128_t)__asm_movaps(v27);
int128_t v28 = __asm_movups(*(int128_t *)(v18 - 112 + v1)); // 0x140002d87
int128_t v29 = __asm_movups(*(int128_t *)(v1 + v19)); // 0x140002d8c
*(int128_t *)(v2 + 16) = (int128_t)__asm_movaps(v28);
while (v15 != 0) {
// 0x140002d40
*(int128_t *)v2 = (int128_t)__asm_movaps(v29);
v16 = __asm_movups(*(int128_t *)(v2 - 16 + v1));
v17 = __asm_movups(*(int128_t *)(v2 - 32 + v1));
v18 = v2;
v19 = v18 - 128;
v2 = v19;
*(int128_t *)(v18 - 16) = (int128_t)__asm_movaps(v16);
*(int128_t *)(v18 - 32) = (int128_t)__asm_movaps(v17);
v20 = v18 - 48;
v21 = __asm_movups(*(int128_t *)(v1 + v20));
v22 = v18 - 64;
v23 = __asm_movups(*(int128_t *)(v1 + v22));
v15--;
*(int128_t *)v20 = (int128_t)__asm_movaps(v21);
*(int128_t *)v22 = (int128_t)__asm_movaps(v23);
v24 = v18 - 80;
v25 = __asm_movups(*(int128_t *)(v1 + v24));
v26 = v18 - 96;
v27 = __asm_movups(*(int128_t *)(v1 + v26));
*(int128_t *)v24 = (int128_t)__asm_movaps(v25);
*(int128_t *)v26 = (int128_t)__asm_movaps(v27);
v28 = __asm_movups(*(int128_t *)(v18 - 112 + v1));
v29 = __asm_movups(*(int128_t *)(v1 + v19));
*(int128_t *)(v2 + 16) = (int128_t)__asm_movaps(v28);
}
// 0x140002d92
v13 = __asm_movaps_12(v29);
v14 = v10 & 127;
}
int128_t v30 = v13; // 0x140002da4
if (v14 >= 16) {
__asm_movups_10(*(int128_t *)v2, v13);
int64_t v31 = v2 - 16; // 0x140002db3
v2 = v31;
int128_t v32 = __asm_movups(*(int128_t *)(v1 + v31)); // 0x140002db7
int64_t v33 = v14 / 16 - 1; // 0x140002dbb
int128_t v34 = v32; // 0x140002dbe
int64_t v35 = v33; // 0x140002dbe
v30 = v32;
while (v33 != 0) {
// 0x140002db0
__asm_movups_10(*(int128_t *)v2, v34);
v31 = v2 - 16;
v2 = v31;
v32 = __asm_movups(*(int128_t *)(v1 + v31));
v33 = v35 - 1;
v34 = v32;
v35 = v33;
v30 = v32;
}
}
// 0x140002dc0
if ((v14 & 15) != 0) {
// 0x140002dc6
__asm_movups_10(*(int128_t *)&v2, __asm_movups(*(int128_t *)&v1));
}
// 0x140002dce
__asm_movups_10(*(int128_t *)v2, v30);
return result;
}
// 0x1400028b0
if (g25 < 3) {
int64_t result2 = result; // 0x140002ba7
if (a3 >= 2049) {
// 0x140002ba9
result2 = result;
if ((*(char *)&g57 & 2) != 0) {
result2 = function_140002740(result, a2, a3);
}
}
// 0x140002bb6
__asm_movdqu_11(*(int128_t *)&v1);
__asm_movdqu_11(*(int128_t *)(a3 - 16 + v1));
if (a3 < 129) {
// 0x140002774
return result2;
}
int64_t v36 = v2 | -16; // 0x140002bd5
v2 -= v36;
int64_t v37 = v1 - v36; // 0x140002bdc
v1 = v37;
int64_t v38 = v36 + a3; // 0x140002bdf
int64_t v39 = v37; // 0x140002be9
if (v38 < 129) {
// 0x140002774
return result2;
}
for (int64_t i = v38; i >= 255; i -= 128) {
int128_t v40 = __asm_movdqu_11(*(int128_t *)v39); // 0x140002bf0
int128_t v41 = __asm_movdqu_11(*(int128_t *)(v1 + 16)); // 0x140002bf4
int128_t v42 = __asm_movdqu_11(*(int128_t *)(v1 + 32)); // 0x140002bf9
int128_t v43 = __asm_movdqu_11(*(int128_t *)(v1 + 48)); // 0x140002bfe
__asm_movdqa(*(int128_t *)v2, v40);
__asm_movdqa(*(int128_t *)(v2 + 16), v41);
__asm_movdqa(*(int128_t *)(v2 + 32), v42);
__asm_movdqa(*(int128_t *)(v2 + 48), v43);
int128_t v44 = __asm_movdqu_11(*(int128_t *)(v1 + 64)); // 0x140002c16
int128_t v45 = __asm_movdqu_11(*(int128_t *)(v1 + 80)); // 0x140002c1b
int128_t v46 = __asm_movdqu_11(*(int128_t *)(v1 + 96)); // 0x140002c20
int128_t v47 = __asm_movdqu_11(*(int128_t *)(v1 + 112)); // 0x140002c25
__asm_movdqa(*(int128_t *)(v2 + 64), v44);
__asm_movdqa(*(int128_t *)(v2 + 80), v45);
__asm_movdqa(*(int128_t *)(v2 + 96), v46);
__asm_movdqa(*(int128_t *)(v2 + 112), v47);
v2 += 128;
v39 = v1 + 128;
v1 = v39;
}
// 0x140002774
return result2;
}
int64_t result3 = result; // 0x1400028c4
if (a3 < 0x180001) {
// 0x1400028cf
result3 = result;
if ((*(char *)&g57 & 2) != 0) {
result3 = function_140002740(result, a2, a3);
}
}
// 0x1400028dc
__asm_vmovdqu(*(int256_t *)&v1);
__asm_vmovdqu(*(int256_t *)(a3 - 32 + v1));
if (a3 < 257) {
// 0x140002774
return result3;
}
int64_t v48 = v2 | -32; // 0x1400028fb
v2 -= v48;
int64_t v49 = v1 - v48; // 0x140002902
v1 = v49;
int64_t v50 = v48 + a3; // 0x140002905
if (v50 < 257) {
// 0x140002774
return result3;
}
int64_t v51 = v50; // 0x14000291c
int64_t v52 = v50; // 0x14000291c
if (v50 < 0x180001) {
int256_t v53 = __asm_vmovdqu(*(int256_t *)v49); // 0x140002930
int256_t v54 = __asm_vmovdqu(*(int256_t *)(v1 + 32)); // 0x140002934
int256_t v55 = __asm_vmovdqu(*(int256_t *)(v1 + 64)); // 0x140002939
int256_t v56 = __asm_vmovdqu(*(int256_t *)(v1 + 96)); // 0x14000293e
__asm_vmovdqa(*(int256_t *)v2, v53);
__asm_vmovdqa(*(int256_t *)(v2 + 32), v54);
__asm_vmovdqa(*(int256_t *)(v2 + 64), v55);
__asm_vmovdqa(*(int256_t *)(v2 + 96), v56);
int256_t v57 = __asm_vmovdqu(*(int256_t *)(v1 + 128)); // 0x140002956
int256_t v58 = __asm_vmovdqu(*(int256_t *)(v1 + 160)); // 0x14000295e
int256_t v59 = __asm_vmovdqu(*(int256_t *)(v1 + 192)); // 0x140002966
int256_t v60 = __asm_vmovdqu(*(int256_t *)(v1 + 224)); // 0x14000296e
__asm_vmovdqa(*(int256_t *)(v2 + 128), v57);
__asm_vmovdqa(*(int256_t *)(v2 + 160), v58);
__asm_vmovdqa(*(int256_t *)(v2 + 192), v59);
__asm_vmovdqa(*(int256_t *)(v2 + 224), v60);
v2 += 256;
int64_t v61 = v1 + 256; // 0x14000299d
v1 = v61;
v51 -= 256;
while (v51 >= 256) {
// 0x140002930
v53 = __asm_vmovdqu(*(int256_t *)v61);
v54 = __asm_vmovdqu(*(int256_t *)(v1 + 32));
v55 = __asm_vmovdqu(*(int256_t *)(v1 + 64));
v56 = __asm_vmovdqu(*(int256_t *)(v1 + 96));
__asm_vmovdqa(*(int256_t *)v2, v53);
__asm_vmovdqa(*(int256_t *)(v2 + 32), v54);
__asm_vmovdqa(*(int256_t *)(v2 + 64), v55);
__asm_vmovdqa(*(int256_t *)(v2 + 96), v56);
v57 = __asm_vmovdqu(*(int256_t *)(v1 + 128));
v58 = __asm_vmovdqu(*(int256_t *)(v1 + 160));
v59 = __asm_vmovdqu(*(int256_t *)(v1 + 192));
v60 = __asm_vmovdqu(*(int256_t *)(v1 + 224));
__asm_vmovdqa(*(int256_t *)(v2 + 128), v57);
__asm_vmovdqa(*(int256_t *)(v2 + 160), v58);
__asm_vmovdqa(*(int256_t *)(v2 + 192), v59);
__asm_vmovdqa(*(int256_t *)(v2 + 224), v60);
v2 += 256;
v61 = v1 + 256;
v1 = v61;
v51 -= 256;
}
} else {
int256_t v62 = __asm_vmovdqu(*(int256_t *)v49); // 0x140002a60
int256_t v63 = __asm_vmovdqu(*(int256_t *)(v1 + 32)); // 0x140002a64
int256_t v64 = __asm_vmovdqu(*(int256_t *)(v1 + 64)); // 0x140002a69
int256_t v65 = __asm_vmovdqu(*(int256_t *)(v1 + 96)); // 0x140002a6e
__asm_vmovntdq(*(int256_t *)v2, v62);
__asm_vmovntdq(*(int256_t *)(v2 + 32), v63);
__asm_vmovntdq(*(int256_t *)(v2 + 64), v64);
__asm_vmovntdq(*(int256_t *)(v2 + 96), v65);
int256_t v66 = __asm_vmovdqu(*(int256_t *)(v1 + 128)); // 0x140002a86
int256_t v67 = __asm_vmovdqu(*(int256_t *)(v1 + 160)); // 0x140002a8e
int256_t v68 = __asm_vmovdqu(*(int256_t *)(v1 + 192)); // 0x140002a96
int256_t v69 = __asm_vmovdqu(*(int256_t *)(v1 + 224)); // 0x140002a9e
__asm_vmovntdq(*(int256_t *)(v2 + 128), v66);
__asm_vmovntdq(*(int256_t *)(v2 + 160), v67);
__asm_vmovntdq(*(int256_t *)(v2 + 192), v68);
__asm_vmovntdq(*(int256_t *)(v2 + 224), v69);
v2 += 256;
int64_t v70 = v1 + 256; // 0x140002acd
v1 = v70;
v52 -= 256;
while (v52 >= 256) {
// 0x140002a60
v62 = __asm_vmovdqu(*(int256_t *)v70);
v63 = __asm_vmovdqu(*(int256_t *)(v1 + 32));
v64 = __asm_vmovdqu(*(int256_t *)(v1 + 64));
v65 = __asm_vmovdqu(*(int256_t *)(v1 + 96));
__asm_vmovntdq(*(int256_t *)v2, v62);
__asm_vmovntdq(*(int256_t *)(v2 + 32), v63);
__asm_vmovntdq(*(int256_t *)(v2 + 64), v64);
__asm_vmovntdq(*(int256_t *)(v2 + 96), v65);
v66 = __asm_vmovdqu(*(int256_t *)(v1 + 128));
v67 = __asm_vmovdqu(*(int256_t *)(v1 + 160));
v68 = __asm_vmovdqu(*(int256_t *)(v1 + 192));
v69 = __asm_vmovdqu(*(int256_t *)(v1 + 224));
__asm_vmovntdq(*(int256_t *)(v2 + 128), v66);
__asm_vmovntdq(*(int256_t *)(v2 + 160), v67);
__asm_vmovntdq(*(int256_t *)(v2 + 192), v68);
__asm_vmovntdq(*(int256_t *)(v2 + 224), v69);
v2 += 256;
v70 = v1 + 256;
v1 = v70;
v52 -= 256;
}
}
// 0x140002774
return result3;
}
// Address range: 0x140002df0 - 0x140002e30
int64_t function_140002df0(int64_t a1, int64_t a2, int64_t a3) {
// 0x140002df0
_NLG_Notify(a1, a2, a3);
return _NLG_Notify(function_140002220(a1), a2, 2);
}
// Address range: 0x140002e40 - 0x140002e6a
int64_t function_140002e40(int64_t a1, int64_t a2, int64_t a3) {
// 0x140002e40
_NLG_Notify(a1, a2, a3);
return function_140002220(a1);
}
// Address range: 0x140002e70 - 0x140002e96
int64_t function_140002e70(int64_t a1, int64_t a2) {
// 0x140002e70
return _NLG_Notify(a1, a2, 2);
}
// Address range: 0x140002ea0 - 0x140002ee7
int64_t function_140002ea0(int64_t a1, int64_t a2, int64_t a3, int64_t a4) {
// 0x140002ea0
_NLG_Notify(a1, a2, a4 & 0xffffffff);
return _NLG_Notify(function_140002220(a3), a2, 2);
}
// Address range: 0x140002ee8 - 0x140003007
int64_t function_140002ee8(void) {
int32_t v1 = g60; // 0x140002f01
int32_t v2 = 512; // 0x140002f10
if (v1 != 0) {
// 0x140002f19
v2 = v1 < 3 == (2 - v1 & v1) < 0 ? v1 : 3;
}
// 0x140002f1e
g60 = v2;
g61 = (int64_t)_calloc_base(v2, 8);
_free_base(NULL);
if (g61 == 0) {
// 0x140002f48
g60 = 3;
g61 = (int64_t)_calloc_base(3, 8);
_free_base(NULL);
if (g61 == 0) {
// 0x140002fec
return 0xffffffff;
}
}
int64_t v3 = 0; // 0x140002f81
int64_t v4 = 0; // 0x140002f81
int64_t v5 = &g32; // 0x140002f81
int64_t v6 = (int64_t)&g33;
__acrt_InitializeCriticalSectionEx(v5 + 48, 4000, 0);
*(int64_t *)(g61 + v3) = v5;
int64_t v7 = *(int64_t *)(8 * v4 / 64 + (int64_t)&g85); // 0x140002fbc
if (*(int64_t *)(72 * v4 + 40 + v7) > 0xfffffffffffffffd) {
// 0x140002fcf
*(int32_t *)v6 = -2;
}
// 0x140002fd5
v4++;
v3 += 8;
int64_t v8 = v6 + 88; // 0x140002fe8
v5 += 88;
while (v4 != 3) {
// 0x140002f88
v6 = v8;
__acrt_InitializeCriticalSectionEx(v5 + 48, 4000, 0);
*(int64_t *)(g61 + v3) = v5;
v7 = *(int64_t *)(8 * v4 / 64 + (int64_t)&g85);
if (*(int64_t *)(72 * v4 + 40 + v7) > 0xfffffffffffffffd) {
// 0x140002fcf
*(int32_t *)v6 = -2;
}
// 0x140002fd5
v4++;
v3 += 8;
v8 = v6 + 88;
v5 += 88;
}
// 0x140002fec
return 0;
}
// Address range: 0x140003078 - 0x140003083
void function_140003078(struct _RTL_CRITICAL_SECTION * lpCriticalSection) {
// 0x140003078
EnterCriticalSection(lpCriticalSection);
}
// Address range: 0x140003084 - 0x14000308f
void function_140003084(struct _RTL_CRITICAL_SECTION * lpCriticalSection) {
// 0x140003084
LeaveCriticalSection(lpCriticalSection);
}
// Address range: 0x140003090 - 0x1400030cd
int64_t function_140003090(void) {
// 0x140003090
int64_t lpCriticalSection; // 0x140003090
EnterCriticalSection((struct _RTL_CRITICAL_SECTION *)lpCriticalSection);
int64_t v1; // 0x140003090
int64_t v2 = function_1400033b8(v1); // 0x1400030b1
int64_t lpCriticalSection2; // 0x140003090
LeaveCriticalSection((struct _RTL_CRITICAL_SECTION *)lpCriticalSection2);
return v2 & 0xffffffff;
}
// Address range: 0x1400030d0 - 0x140003176
int64_t function_1400030d0(int64_t a1, uint64_t a2) {
if (a2 <= 0xffffffffffffffff) {
int32_t * v1 = _errno(); // 0x1400030f6
*v1 = 12;
// 0x140003161
return (int64_t)v1 & -256;
}
uint64_t v2 = 2 * a2; // 0x140003107
int64_t * v3 = (int64_t *)(a1 + 1032); // 0x14000310b
if (v2 < 1025 == *v3 == 0) {
// 0x140003161
return 0x7fffffffffffff01;
}
int64_t * v4 = (int64_t *)(a1 + 1024); // 0x14000311d
if (v2 <= *v4) {
// 0x140003161
return 0x7fffffffffffff01;
}
int64_t * v5 = _malloc_base((int32_t)v2); // 0x14000312d
int64_t result = (int64_t)&g113 & -256; // 0x140003138
if (v5 != NULL) {
// 0x14000313a
_free_base((int64_t *)*v3);
*v3 = (int64_t)v5;
*v4 = v2;
result = (int64_t)&g113 & -256 | 1;
}
// 0x140003157
_free_base(NULL);
// 0x140003161
return result;
}
// Address range: 0x140003178 - 0x1400031ff
int64_t function_140003178(int64_t a1, int64_t a2, int64_t a3, int64_t a4) {
int64_t v1 = a1 + 88; // 0x140003191
int64_t v2 = 512; // 0x140003191
if (v1 != 0) {
// 0x14000319a
v2 = *(int64_t *)(a1 + 1112) / 2;
}
int64_t v3 = v1 - 1 + v2; // 0x1400031ab
int64_t v4 = a1 + 72; // 0x1400031ae
int64_t * v5 = (int64_t *)v4; // 0x1400031ae
*v5 = v3;
int32_t * v6 = (int32_t *)(a1 + 56); // 0x1400031b2
int32_t v7 = *v6; // 0x1400031b2
int32_t result = v7; // 0x1400031b7
if ((int32_t)a2 == 0 != v7 >= 0 != v7 != 0) {
uint64_t v8 = a3 & 0xffffffff; // 0x140003181
*v6 = v7 - 1;
uint64_t v9 = a2 & 0xffffffff & 0xffffffff; // 0x1400031c8
int64_t v10 = v9 % v8 + 48; // 0x1400031ca
char v11 = v10;
*(char *)*v5 = v11 < 58 ? v11 : (char)(v10 + (32 * a4 ^ 39));
*v5 = *v5 - 1;
int32_t v12 = *v6; // 0x1400031b2
int64_t v13 = v9 / v8; // 0x1400031b7
result = v12;
while (v8 > v9 != v12 >= 0 != v12 != 0) {
// 0x1400031be
*v6 = v12 - 1;
v9 = v13 & 0xffffffff;
v10 = v9 % v8 + 48;
v11 = v10;
*(char *)*v5 = v11 < 58 ? v11 : (char)(v10 + (32 * a4 ^ 39));
*v5 = *v5 - 1;
v12 = *v6;
v13 = v9 / v8;
result = v12;
}
}
// 0x1400031ed
*(int32_t *)(a1 + 80) = (int32_t)v3 - *(int32_t *)v4;
*v5 = *v5 + 1;
return result;
}
// Address range: 0x140003200 - 0x14000328d
int64_t function_140003200(int64_t a1, int64_t a2, int64_t a3, int64_t a4) {
int64_t v1 = a1 + 88; // 0x14000321c
int64_t v2 = 512; // 0x14000321c
if (v1 != 0) {
// 0x140003225
v2 = *(int64_t *)(a1 + 1112) / 2;
}
int64_t v3 = v1 - 1 + v2; // 0x140003236
int64_t v4 = a1 + 72; // 0x140003239
int64_t * v5 = (int64_t *)v4; // 0x140003239
*v5 = v3;
int32_t * v6 = (int32_t *)(a1 + 56); // 0x14000323d
int32_t v7 = *v6; // 0x14000323d
int32_t result = v7; // 0x140003243
if (a2 == 0 != v7 >= 0 != v7 != 0) {
uint64_t v8 = a3 & 0xffffffff; // 0x140003213
uint64_t v9 = a2;
*v6 = v7 - 1;
int64_t v10 = v9 % v8 + 48; // 0x140003258
char v11 = v10;
*(char *)*v5 = v11 < 58 ? v11 : (char)(v10 + (32 * a4 ^ 39));
*v5 = *v5 - 1;
int32_t v12 = *v6; // 0x14000323d
int64_t v13 = v9 / v8; // 0x140003243
result = v12;
while (v8 > v9 != v12 >= 0 != v12 != 0) {
// 0x14000324a
v9 = v13;
*v6 = v12 - 1;
v10 = v9 % v8 + 48;
v11 = v10;
*(char *)*v5 = v11 < 58 ? v11 : (char)(v10 + (32 * a4 ^ 39));
*v5 = *v5 - 1;
v12 = *v6;
v13 = v9 / v8;
result = v12;
}
}
// 0x14000327b
*(int32_t *)(a1 + 80) = (int32_t)v3 - *(int32_t *)v4;
*v5 = *v5 + 1;
return result;
}
// Address range: 0x140003290 - 0x14000331b
int64_t function_140003290(int64_t a1, int64_t a2, int64_t a3, int64_t a4) {
int64_t v1 = a4;
int64_t result; // 0x140003290
if ((int32_t)a3 < 1) {
// 0x14000331a
return result;
}
int64_t v2 = 0x100000000000000 * a2 / 0x100000000000000 & 0xffffffff;
int32_t * v3 = (int32_t *)a4;
uint32_t v4 = (int32_t)a4; // 0x1400032bf
int64_t v5 = a1; // 0x1400032bf
int64_t v6 = 0; // 0x1400032bf
int64_t v7; // 0x1400032c7
while (true) {
lab_0x1400032c1:;
uint32_t v8 = *(int32_t *)(v5 + 20); // 0x1400032c4
v7 = v8 / 0x1000;
if ((v8 & 0x1000) == 0) {
goto lab_0x1400032d9;
} else {
// 0x1400032cf
v5 = v7;
if (*(int64_t *)(v7 + 8) == 0) {
goto lab_0x1400032f5;
} else {
goto lab_0x1400032d9;
}
}
}
lab_0x1400032f5_2:
// 0x1400032f5
*v3 = -1;
// 0x14000331a
return 0xffffffff;
lab_0x1400032d9:;
int64_t v9 = function_140008bc0(v2, v7); // 0x1400032df
v5 = v2;
if ((int32_t)v9 == -1) {
// break -> 0x1400032f5
goto lab_0x1400032f5_2;
}
goto lab_0x1400032f5;
lab_0x1400032f5:
// 0x1400032f5
*v3 = v4 + 1;
v4 = *(int32_t *)&v1;
result = 0xffffffff;
if (v4 == -1) {
lab_0x14000331a_2:
// 0x14000331a
return result;
}
// 0x1400032fa
v6 = v6 + 1 & 0xffffffff;
if (v6 >= (a3 & 0xffffffff)) {
// 0x14000331a
result = v4;
goto lab_0x14000331a_2;
}
goto lab_0x1400032c1;
}
// Address range: 0x14000331c - 0x1400033b7
int64_t function_14000331c(int64_t * a1, int64_t a2) {
int64_t result = (int64_t)a1;
char * v1 = (char *)(result + 24); // 0x14000332b
*v1 = 0;
int64_t v2 = result + 8; // 0x140003332
if (a2 != 0) {
// 0x140003350
int64_t v3; // 0x14000331c
__asm_movdqu(*(int128_t *)v2, __asm_movups(*(int128_t *)&v3));
// 0x1400033a4
return result;
}
// 0x140003340
if (g78 == 0) {
// 0x140003350
__asm_movdqu(*(int128_t *)v2, __asm_movups(*(int128_t *)0x14001d308));
// 0x1400033a4
return result;
}
int64_t v4 = function_140007b44(); // 0x140003356
*a1 = v4;
*(int64_t *)v2 = *(int64_t *)(v4 + 144);
int64_t v5 = result + 16; // 0x140003372
*(int64_t *)v5 = *(int64_t *)(v4 + 136);
__acrt_update_locale_info(v4, v2);
__acrt_update_locale_info2(v4, v5);
int32_t * v6 = (int32_t *)(v4 + 936); // 0x14000338d
int32_t v7 = *v6; // 0x14000338d
if ((v7 & 2) == 0) {
// 0x140003397
*v6 = v7 | 2;
*v1 = 1;
}
// 0x1400033a4
return result;
}
// Address range: 0x1400033b8 - 0x1400034e5
int64_t function_1400033b8(int64_t a1) {
int64_t v1 = function_140008c38(a1); // 0x1400033f2
int64_t v2; // bp-1224, 0x1400033b8
function_14000331c(&v2, *(int64_t *)*(int64_t *)(a1 + 8));
int64_t v3 = *(int64_t *)*(int64_t *)(a1 + 16); // bp-1192, 0x140003469
function_1400036ac(&v3);
_free_base(NULL);
int64_t v4 = 0; // 0x1400034a3
char v5; // 0x1400033b8
if (v5 != 0) {
int32_t * v6 = (int32_t *)(v2 + 936); // 0x1400034aa
*v6 = *v6 & -3;
v4 = v2 & -256;
}
// 0x1400034b1
function_140008d00(v4 | v1 & 255, a1);
return function_140011ed0(g29);
}
// Address range: 0x1400034f0 - 0x140003583
int64_t function_1400034f0(int64_t a1, int64_t a2) {
char v1 = *(char *)*(int64_t *)*(int64_t *)(a2 + 248); // 0x1400034fd
if ((char)a1 == 0) {
// 0x140003582
return 0;
}
int64_t v2 = a1; // 0x140003518
int64_t result = a1 & 255; // 0x140003518
char v3 = v1; // 0x140003516
while (v1 != (char)result) {
// 0x140003518
v2++;
unsigned char v4 = *(char *)v2; // 0x140003518
result = v4;
v3 = v4;
if (v4 == 0) {
// break -> 0x140003526
break;
}
v3 = v1;
}
// 0x140003526
if (v3 == 0) {
// 0x140003582
return result;
}
int64_t v5 = v2 + 1; // 0x140003526
char v6 = *(char *)v5; // 0x14000352d
int64_t v7 = v5; // 0x140003532
char v8 = v6; // 0x140003532
int64_t v9 = v5; // 0x140003532
if (v6 != 0) {
v9 = v7;
while ((v8 - 69 & -33) != 0) {
// 0x14000353a
v7++;
v8 = *(char *)v7;
v9 = v7;
if (v8 == 0) {
// break -> 0x140003545
break;
}
v9 = v7;
}
}
int64_t v10 = v9 - 1; // 0x140003545
char v11 = *(char *)v10; // 0x140003545
int64_t v12 = v10; // 0x140003551
int64_t v13 = v10; // 0x140003551
char v14 = v11; // 0x140003551
if (v11 == 48) {
v12--;
char v15 = *(char *)v12; // 0x140003553
v13 = v12;
v14 = v15;
while (v15 == 48) {
// 0x140003553
v12--;
v15 = *(char *)v12;
v13 = v12;
v14 = v15;
}
}
int64_t v16 = v13 + (int64_t)(v14 == v1); // 0x140003569
int64_t v17 = v9; // 0x140003569
unsigned char result2 = *(char *)v17; // 0x140003570
v16++;
*(char *)v16 = result2;
v17++;
while (result2 != 0) {
// 0x140003570
result2 = *(char *)v17;
v16++;
*(char *)v16 = result2;
v17++;
}
// 0x140003582
return result2;
}
// Address range: 0x140003590 - 0x140003607
int64_t function_140003590(int64_t a1, int64_t a2) {
int64_t v1 = a1 & 255; // 0x140003593
int64_t v2 = *(int64_t *)(a2 + 272); // 0x140003597
int64_t v3 = a1; // 0x1400035a3
int64_t v4 = v1; // 0x1400035a3
int64_t v5; // 0x140003590
int64_t v6; // 0x140003590
if (*(char *)(v2 + v1) == 101) {
goto lab_0x1400035bf;
} else {
int64_t v7 = v3;
v3 = v7 + 1;
v4 = (int64_t)*(char *)v3;
while ((*(char *)(2 * v4 + v2) & 4) != 0) {
// 0x1400035b0
v7 = v3;
v3 = v7 + 1;
v4 = (int64_t)*(char *)v3;
}
// 0x1400035bf
if (*(char *)(v2 + v4) != 120) {
goto lab_0x1400035bf;
} else {
int64_t v8 = v7 + 3;
v6 = (int64_t)*(char *)v8;
v5 = v8;
goto lab_dec_label_pc_unknown;
}
}
lab_0x1400035bf:
// 0x1400035bf
v6 = v4;
v5 = v3;
goto lab_dec_label_pc_unknown;
lab_dec_label_pc_unknown:;
int64_t v9 = *(int64_t *)*(int64_t *)(a2 + 248); // 0x1400035dd
*(char *)v5 = *(char *)v9;
int64_t v10 = v5 + 1; // 0x1400035e9
char * v11 = (char *)v10; // 0x1400035f0
char v12 = v6; // 0x1400035f7
*v11 = v12;
int64_t result = v10 + 1; // 0x1400035fa
v10 = result;
int64_t v13 = (int64_t)*v11; // 0x140003604
while (v12 != 0) {
// 0x1400035f0
v11 = (char *)v10;
v12 = v13;
*v11 = v12;
result = v10 + 1;
v10 = result;
v13 = (int64_t)*v11;
}
// 0x140003606
return result;
}
// Address range: 0x140003608 - 0x1400036a9
int64_t function_140003608(int64_t a1, int64_t a2) {
int64_t * v1 = (int64_t *)(a1 + 16); // 0x14000361a
int64_t v2 = *v1; // 0x14000361a
int64_t v3 = v2; // 0x140003627
if (v2 == 0) {
// 0x140003629
v3 = (int64_t)_errno();
*v1 = v3;
}
int32_t * v4 = (int32_t *)v3; // 0x140003635
int32_t v5 = *v4; // 0x140003635
*v4 = 0;
int64_t * v6 = (int64_t *)(a1 + 24); // 0x140003644
int64_t v7 = 0; // 0x140003648
*(int32_t *)a2 = (int32_t)function_140007154(*v6 - 1, &v7);
int64_t v8 = *v1; // 0x14000365d
int64_t v9 = v8; // 0x140003664
if (v8 == 0) {
// 0x140003666
v9 = (int64_t)_errno();
*v1 = v9;
}
int64_t v10 = v9; // 0x140003672
int64_t v11 = 0; // 0x140003672
if (*(int32_t *)v9 != 34) {
// 0x140003674
v10 = v7;
v11 = 0;
if (v7 >= *v6) {
// 0x14000367f
*v6 = v7;
v10 = v7;
v11 = 1;
}
}
// 0x140003688
if (!((v5 == 0 | *v4 != 0))) {
// 0x140003691
*v4 = v5;
}
// 0x140003693
return v10 & -256 | v11;
}
// Address range: 0x1400036ac - 0x1400038bf
int64_t function_1400036ac(int64_t * a1) {
int64_t v1 = (int64_t)a1;
int64_t v2 = *(int64_t *)(v1 + 1128); // 0x1400036c2
int64_t v3 = v2; // 0x1400036cc
int64_t v4; // 0x1400036ac
int64_t v5; // 0x1400036ac
int64_t v6; // 0x1400036ac
int64_t v7; // 0x1400036ac
char * v8; // 0x140003895
int64_t v9; // 0x1400036ac
int64_t * v10; // 0x1400036fa
if (v2 == 0) {
goto lab_0x1400036ce_2;
lab_0x140003887:
// 0x140003887
if ((char)v4 == 0) {
// 0x1400036e0
return 0xffffffff;
}
goto lab_0x14000388f;
lab_0x14000388f:;
char v11 = *(char *)*v10; // 0x140003893
*v8 = v11;
*v10 = *v10 + 1;
if (v11 == 0) {
// break -> 0x1400038a4
goto lab_0x1400038a4;
}
goto lab_0x14000373d;
lab_0x1400037da:
// 0x1400037da
v4 = function_140003608(v1, v6);
goto lab_0x140003887;
lab_0x1400036ce_2:
// 0x1400036ce
*_errno() = 22;
function_140006270(v3, v5, v9, v7);
// 0x1400036e0
return 0xffffffff;
}
// 0x1400036f1
if ((char)function_1400043d0(v2) == 0) {
// 0x1400036e0
return 0xffffffff;
}
// 0x1400036fa
v10 = (int64_t *)(v1 + 24);
if (*v10 == 0) {
// 0x140003701
*_errno() = 22;
int64_t v31; // 0x1400036ac
function_140006270(v2, v31, v9, v7);
// 0x1400036e0
return 0xffffffff;
}
int32_t * v32 = (int32_t *)(v1 + 1136); // 0x140003716
int32_t v33 = *v32 + 1; // 0x140003716
*v32 = v33;
if (v33 == 2) {
// 0x1400036e0
return (int64_t)*(int32_t *)(v1 + 40);
}
int32_t * v17 = (int32_t *)(v1 + 44); // 0x140003734
v8 = (char *)(v1 + 65);
int32_t * v12 = (int32_t *)(v1 + 40);
int64_t v26 = v1 + 56;
int64_t * v24 = (int64_t *)(v1 + 32);
int32_t * v21 = (int32_t *)v26;
int64_t v22 = v1 + 52;
int32_t * v19 = (int32_t *)v22;
int32_t * v20 = (int32_t *)(v1 + 48);
while (true) {
// 0x140003730
*(int32_t *)(v1 + 80) = 0;
*v17 = 0;
char v34 = *(char *)*v10; // 0x140003893
*v8 = v34;
*v10 = *v10 + 1;
if (v34 != 0) {
while (true) {
lab_0x14000373d:
// 0x14000373d
if (*v12 < 0) {
// break -> 0x1400038a4
break;
}
char v13 = *v8; // 0x14000374b
int64_t v14 = v13; // 0x14000374b
int32_t v15 = 0; // 0x140003755
if (v13 < 123) {
// 0x140003757
v15 = *(int32_t *)((8 * v14 + 768 & 1016) + (int64_t)&g17 + 4);
}
uint32_t v16 = *v17 + 8 * v15 & 127; // 0x14000376d
int32_t v18 = *(int32_t *)((int64_t)(8 * v16) + (int64_t)&g17); // 0x140003770
*v17 = v18;
switch (v18) {
case 8: {
// 0x1400036ce
v5 = v14;
v3 = v16;
goto lab_0x1400036ce_2;
}
case 0: {
// 0x14000387f
v4 = function_1400038c0(v1, v13);
goto lab_0x140003887;
}
case 1: {
// 0x140003866
*v19 = 0;
*v20 = 0;
*(int32_t *)(v1 + 60) = 0;
*(char *)(v1 + 64) = 0;
*v21 = -1;
*(char *)(v1 + 84) = 0;
goto lab_0x14000388f;
}
case 2: {
switch (v13) {
case 32: {
// 0x140003860
*v20 = *v20 | 2;
// break -> 0x14000388f
break;
}
case 35: {
// 0x14000385a
*v20 = *v20 | 32;
// break -> 0x14000388f
break;
}
case 43: {
// 0x140003854
*v20 = *v20 | 1;
// break -> 0x14000388f
break;
}
case 45: {
// 0x14000384e
*v20 = *v20 | 4;
// break -> 0x14000388f
break;
}
default: {
if (v13 == 48) {
// 0x140003848
*v20 = *v20 | 8;
}
// break -> 0x14000388f
break;
}
}
goto lab_0x14000388f;
}
case 3: {
// 0x140003806
v6 = v22;
if (v13 == 42) {
int64_t v23 = *v24; // 0x140003811
*v24 = v23 + 8;
int32_t v25 = *(int32_t *)v23; // 0x14000381a
*v19 = v25;
if (v25 < 0) {
// 0x140003824
*v20 = *v20 | 4;
*v19 = -v25;
}
goto lab_0x14000388f;
} else {
goto lab_0x1400037da;
}
}
case 4: {
// 0x1400037fd
*v21 = 0;
goto lab_0x14000388f;
}
case 5: {
// 0x1400037d1
v6 = v26;
if (v13 == 42) {
int64_t v27 = *v24; // 0x1400037e7
*v24 = v27 + 8;
int32_t v28 = *(int32_t *)v27; // 0x1400037f0
*v21 = v28 > -1 ? v28 : -1;
goto lab_0x14000388f;
} else {
goto lab_0x1400037da;
}
}
default: {
int32_t v29 = v18 - 6; // 0x1400037a9
if (v29 == 0) {
// 0x1400037c4
v4 = function_1400039d4(v1);
} else {
// 0x1400037ae
if (v29 != 1) {
// 0x1400036e0
int64_t v30; // 0x1400036ac
int64_t result = v30;
return result;
}
// 0x1400037b7
v4 = function_140003b44(v1, v13, v9);
}
goto lab_0x140003887;
}
}
}
}
lab_0x1400038a4:;
int32_t v35 = *v32 + 1; // 0x1400038a4
*v32 = v35;
if (v35 == 2) {
// break -> 0x1400038b7
break;
}
}
// 0x1400036e0
return (int64_t)*v12;
}
// Address range: 0x1400038c0 - 0x140003930
int64_t function_1400038c0(int64_t a1, char a2) {
// 0x1400038c0
if ((char)function_140003930(a1) == 0) {
// 0x140003918
*_errno() = 22;
// 0x14000392a
int64_t v1; // 0x1400038c0
int64_t v2; // 0x1400038c0
return function_140006270(a1, 0, v2, v1) & -256;
}
int64_t v3 = *(int64_t *)(a1 + 1128); // 0x1400038d4
int64_t v4; // 0x1400038c0
if ((*(int32_t *)(v3 + 20) & 0x1000) == 0) {
goto lab_0x1400038f8;
} else {
// 0x1400038ea
v4 = v3;
if (*(int64_t *)(v3 + 8) == 0) {
goto lab_0x14000390b;
} else {
goto lab_0x1400038f8;
}
}
lab_0x1400038f8:;
int64_t v5 = function_140008bc0((int64_t)*(char *)(a1 + 65) & 0xffffffff, v3); // 0x140003901
v4 = v5;
if ((int32_t)v5 == -1) {
// 0x140003910
*(int32_t *)(a1 + 40) = -1;
// 0x14000392a
return v5 & -256 | 1;
}
goto lab_0x14000390b;
lab_0x14000390b:;
int32_t * v6 = (int32_t *)(a1 + 40); // 0x14000390b
*v6 = *v6 + 1;
// 0x14000392a
return v4 & -256 | 1;
}
// Address range: 0x140003930 - 0x1400039d2
int64_t function_140003930(int64_t a1) {
char * v1 = (char *)(a1 + 65); // 0x140003936
char v2 = *v1; // 0x140003936
*(char *)(a1 + 84) = 0;
if (v2 < -1) {
// 0x1400039cc
int64_t v3; // 0x140003930
return v3 & -256 | 1;
}
int64_t v4 = v2; // 0x140003936
int64_t v5 = *(int64_t *)*(int64_t *)*(int64_t *)(a1 + 8); // 0x14000394f
uint16_t v6 = *(int16_t *)(v5 + 2 * v4) & -0x8000;
if (v6 == 0) {
// 0x1400039cc
return v5 & -256 | 1;
}
int64_t v7 = *(int64_t *)(a1 + 1128); // 0x140003965
uint32_t v8 = *(int32_t *)(v7 + 20); // 0x14000396c
int64_t v9; // 0x140003930
int64_t v10; // 0x140003930
if ((v8 & 0x1000) == 0) {
goto lab_0x140003985;
} else {
// 0x140003977
v9 = v6;
v10 = v8 / 0x1000;
if (*(int64_t *)(v7 + 8) == 0) {
goto lab_0x140003999;
} else {
goto lab_0x140003985;
}
}
lab_0x140003985:;
int64_t v11 = v4 & 0xffffffff; // 0x14000398c
int64_t v12 = function_140008bc0(v11, v7); // 0x14000398f
v9 = v11;
v10 = v7;
int64_t v13; // 0x140003930
int64_t v14; // 0x140003930
if ((int32_t)v12 == -1) {
// 0x14000399e
*(int32_t *)(a1 + 40) = -1;
v13 = v11;
v14 = v7;
goto lab_0x1400039a2;
} else {
goto lab_0x140003999;
}
lab_0x140003999:;
int32_t * v15 = (int32_t *)(a1 + 40); // 0x140003999
*v15 = *v15 + 1;
v13 = v9;
v14 = v10;
goto lab_0x1400039a2;
lab_0x1400039a2:;
int64_t * v16 = (int64_t *)(a1 + 24); // 0x1400039a2
int64_t v17 = *v16; // 0x1400039a2
unsigned char v18 = *(char *)v17; // 0x1400039a6
int64_t v19 = v17 + 1; // 0x1400039a8
*v1 = v18;
*v16 = v19;
if (v18 != 0) {
// 0x1400039cc
return v19 & -256 | 1;
}
// 0x1400039b6
*_errno() = 22;
// 0x1400039cc
int64_t v20; // 0x140003930
return function_140006270(v13 & -256 | (int64_t)v18, v14, v4, v20) & -256;
}
// Address range: 0x1400039d4 - 0x140003b41
int64_t function_1400039d4(int64_t a1) {
char v1 = *(char *)(a1 + 65); // 0x1400039d8
int64_t v2; // 0x1400039d4
int64_t v3 = v2 & -256; // 0x1400039d8
char v4 = a1;
int64_t v5; // 0x1400039d4
int64_t v6; // 0x1400039d4
if (v1 == 70) {
// 0x1400039df
if ((v4 & 8) != 0) {
// 0x140003b3c
return v3 & -256 | 1;
}
// 0x1400039e8
*(int32_t *)(a1 + 44) = 7;
return function_140003b44(a1, (char)v6, v5);
}
if (v1 != 78) {
int32_t * v7 = (int32_t *)(a1 + 60);
if (*v7 == 0) {
int64_t v8; // 0x1400039d4
switch (v1) {
case 73: {
int64_t * v9 = (int64_t *)(a1 + 24); // 0x140003ae1
int64_t v10 = *v9; // 0x140003ae1
unsigned char v11 = *(char *)v10; // 0x140003ae5
if (v11 == 51) {
// 0x140003aeb
if (*(char *)(v10 + 1) == 50) {
int64_t v12 = v10 + 2; // 0x140003af1
*v7 = 10;
*v9 = v12;
// 0x140003b3c
return v12 & -256 | 1;
}
}
if (v11 == 54) {
// 0x140003b06
if (*(char *)(v10 + 1) == 52) {
int64_t v13 = v10 + 2; // 0x140003b0c
*v7 = 11;
*v9 = v13;
// 0x140003b3c
return v13 & -256 | 1;
}
}
int64_t v14 = (v3 | (int64_t)v11) + 168; // 0x140003b1d
if ((char)v14 >= 33) {
// 0x140003b3c
return v3 & -256 | 1;
}
// 0x140003b23
if ((1 << (v14 & 63) & 0x120821001) != 0) {
// 0x140003b33
*v7 = 9;
}
// 0x140003b3c
return v3 & -256 | 1;
}
case 76: {
// 0x140003ad8
*v7 = 8;
// 0x140003b3c
return v3 & -256 | 1;
}
case 84: {
// 0x140003acf
*v7 = 13;
// 0x140003b3c
return v3 & -256 | 1;
}
case 104: {
int64_t * v15 = (int64_t *)(a1 + 24); // 0x140003ab1
int64_t v16 = *v15; // 0x140003ab1
v8 = 2;
if (*(char *)v16 == 104) {
// 0x140003aba
*v15 = v16 + 1;
v8 = 1;
}
// break -> 0x140003a9d
break;
}
case 106: {
// 0x140003aa5
*v7 = 5;
// 0x140003b3c
return v3 & -256 | 1;
}
case 108: {
int64_t * v17 = (int64_t *)(a1 + 24); // 0x140003a81
int64_t v18 = *v17; // 0x140003a81
v8 = 3;
if (*(char *)v18 == 108) {
// 0x140003a8a
*v17 = v18 + 1;
v8 = 4;
}
// break -> 0x140003a9d
break;
}
case 116: {
// 0x140003a75
*v7 = 7;
// 0x140003b3c
return v3 & -256 | 1;
}
case 119: {
// 0x140003a69
*v7 = 12;
// 0x140003b3c
return v3 & -256 | 1;
}
default: {
// 0x140003a55
if (v1 == 122) {
// 0x140003a5d
*v7 = 6;
}
// 0x140003b3c
return v3 & -256 | 1;
}
}
// 0x140003a9d
*v7 = (int32_t)v8;
// 0x140003b3c
return v8 & -256 | 1;
}
} else {
// 0x1400039fc
if ((v4 & 8) != 0) {
// 0x140003b3c
return v3 & -256 | 1;
}
// 0x140003a05
*(int32_t *)(a1 + 44) = 8;
}
// 0x140003a0c
*_errno() = 22;
// 0x140003b3c
int64_t v19; // 0x1400039d4
return function_140006270(a1, v6, v5, v19) & -256;
}
// Address range: 0x140003b44 - 0x140003dc8
int64_t function_140003b44(int64_t a1, char a2, int64_t a3) {
char * v1 = (char *)(a1 + 65); // 0x140003b5c
char v2 = *v1; // 0x140003b5c
int64_t v3; // 0x140003b44
int64_t v4 = v3 & -256; // 0x140003b5c
int32_t v5; // 0x140003b44
int64_t v6; // 0x140003b44
int64_t v7; // 0x140003b44
if (v2 > 100) {
if (v2 < 104) {
// 0x140003c4a
v6 = function_140003eac(a1);
goto lab_0x140003c4f;
} else {
// 0x140003bcf
v7 = 10;
v5 = 0;
switch (v2) {
case 105: {
goto lab_0x140003c37;
}
case 110: {
// 0x140003c30
v6 = function_1400042b0(a1);
goto lab_0x140003c4f;
}
case 111: {
int32_t * v8 = (int32_t *)(a1 + 48); // 0x140003c12
int32_t v9 = *v8; // 0x140003c12
v7 = 8;
v5 = 0;
if ((v9 & 32) != 0) {
// 0x140003c1f
*v8 = v9 | 128;
v7 = 8;
v5 = 0;
}
goto lab_0x140003c43;
}
case 112: {
// 0x140003bfa
*(int32_t *)(a1 + 56) = 16;
*(int32_t *)(a1 + 60) = 11;
// 0x140003c08
v7 = 16;
v5 = (int32_t)a3 & -256 | 1;
goto lab_0x140003c43;
}
case 115: {
// 0x140003bf3
v6 = function_140004338(a1);
goto lab_0x140003c4f;
}
case 117: {
goto lab_0x140003c43;
}
default: {
// 0x140003be7
v7 = 16;
v5 = 0;
if (v2 != 120) {
// 0x140003daf
return v4 & -256;
}
goto lab_0x140003c43;
}
}
}
} else {
switch (v2) {
case 100: {
goto lab_0x140003c37;
}
case 65: {
// 0x140003c4a
v6 = function_140003eac(a1);
goto lab_0x140003c4f;
}
case 67: {
// 0x140003bb5
v6 = function_140004068(a1, 0);
goto lab_0x140003c4f;
}
default: {
// 0x140003b88
if (v2 < 69) {
// 0x140003daf
return v4 & -256;
}
if (v2 < 72) {
// 0x140003c4a
v6 = function_140003eac(a1);
goto lab_0x140003c4f;
} else {
switch (v2) {
case 83: {
// 0x140003bf3
v6 = function_140004338(a1);
goto lab_0x140003c4f;
}
case 88: {
// 0x140003c08
v7 = 16;
v5 = (int32_t)a3 & -256 | 1;
goto lab_0x140003c43;
}
case 90: {
// 0x140003bc1
v6 = function_140003e38(a1);
goto lab_0x140003c4f;
}
case 97: {
// 0x140003c4a
v6 = function_140003eac(a1);
goto lab_0x140003c4f;
}
default: {
// 0x140003bad
if (v2 != 99) {
// 0x140003daf
return v4 & -256;
}
// 0x140003bb5
v6 = function_140004068(a1, 0);
goto lab_0x140003c4f;
}
}
}
}
}
}
lab_0x140003c37:;
int32_t * v10 = (int32_t *)(a1 + 48); // 0x140003c37
*v10 = *v10 | 16;
v7 = 10;
v5 = 0;
goto lab_0x140003c43;
lab_0x140003c4f:
// 0x140003c4f
if ((char)v6 == 0) {
// 0x140003daf
return v6 & -256;
}
// 0x140003c5a
if (*(char *)(a1 + 64) != 0) {
// 0x140003daf
return v6 & -256 | 1;
}
int32_t * v12 = (int32_t *)(a1 + 48); // 0x140003c64
uint32_t v13 = *v12; // 0x140003c64
int64_t v14 = v13; // 0x140003c64
int16_t v15 = 0; // 0x140003c69
int64_t v16 = 0; // 0x140003c7c
if ((v13 & 16) != 0) {
if ((v14 & 64) == 0) {
if ((v13 & 1) == 0) {
// 0x140003c9b
v16 = 0;
if ((v13 & 2) != 0) {
// 0x140003ca4
v15 = 32;
v16 = 1;
}
} else {
// 0x140003c94
v15 = 43;
v16 = 1;
}
} else {
// 0x140003c88
v15 = 45;
v16 = 1;
}
}
char v17 = *v1; // 0x140003cac
int64_t v18; // 0x140003b44
if ((v14 & 32) != 0 == (v17 - 88 & -33) == 0) {
goto lab_0x140003cdd;
} else {
// 0x140003cd9
v18 = v16;
if ((v17 - 65 & -33) != 0) {
goto lab_0x140003cf8;
} else {
goto lab_0x140003cdd;
}
}
lab_0x140003c43:;
// 0x140003c43
int64_t v11; // 0x140003b44
v6 = function_140004130(a1, v7, v5, v11);
goto lab_0x140003c4f;
lab_0x140003cdd:;
// 0x140003cdd
int64_t v19; // bp-72, 0x140003b44
int64_t v20 = &v19; // 0x140003b58
*(char *)(v16 | v20 + 80) = 48;
*(char *)(v20 + 81 + v16) = v17 != 88 == (v17 != 65) ? 120 : 88;
v18 = v16 | 2;
goto lab_0x140003cf8;
lab_0x140003cf8:;
int32_t v21 = v18; // 0x140003cfe
int64_t v22 = (int64_t)(*(int32_t *)(a1 + 52) - v21 - *(int32_t *)(a1 + 80)); // 0x140003cfe
int64_t v23; // 0x140003b44
int64_t v24; // 0x140003b44
int64_t v25; // 0x140003b44
if ((v14 & 12) != 0) {
// 0x140003cf8
v23 = a1 + 40;
v24 = a1 + 1128;
v25 = v14;
} else {
int64_t v26 = a1 + 40;
int64_t v27 = a1 + 1128;
int64_t v28 = v14 & 0xffffff00 | 32; // 0x140003d13
function_140003290(v27, v28, v22, v26);
v23 = v26;
v24 = v27;
v25 = v28;
}
int64_t v29 = *(int64_t *)v24; // 0x140003d21
int64_t v30; // 0x140003b44
if ((*(int32_t *)(v29 + 20) & 0x1000) == 0) {
// 0x140003d41
function_140004590(v24, &v15, v18 & 0xffffffff, v23, a1 + 16);
v30 = &v15;
goto lab_0x140003d5d;
} else {
// 0x140003d33
if (*(int64_t *)(v29 + 8) != 0) {
// 0x140003d41
function_140004590(v24, &v15, v18 & 0xffffffff, v23, a1 + 16);
v30 = &v15;
goto lab_0x140003d5d;
} else {
int32_t * v31 = (int32_t *)v23; // 0x140003d3d
*v31 = *v31 + v21;
v30 = v25;
goto lab_0x140003d5d;
}
}
lab_0x140003d5d:;
int32_t v32 = *v12; // 0x140003d5d
if ((v32 & 8) != 0) {
if ((v32 & 4) == 0) {
// 0x140003d72
function_140003290(v24, v30 & -256 | 48, v22, v23);
}
}
int64_t v33 = function_14000446c(a1); // 0x140003d87
if (*(int32_t *)v23 < 0) {
// 0x140003daf
return v33 & -256 | 1;
}
int64_t v34 = v33; // 0x140003d9a
if ((*v12 & 4) != 0) {
// 0x140003d9c
v34 = function_140003290(v24, 32, v22, v23);
}
// 0x140003daf
return v34 & -256 | 1;
}
// Address range: 0x140003dd0 - 0x140003e06
int64_t function_140003dd0(uint32_t result) {
if (result < 12) {
// 0x140003dd5
return result;
}
// 0x140003e03
return 0;
}
// Address range: 0x140003e0a - 0x140003e0e
int64_t function_140003e0a(void) {
// 0x140003e0a
int64_t result; // 0x140003e0a
*(char *)result = 2 * (char)result;
return result;
}
// Address range: 0x140003e38 - 0x140003eab
int64_t function_140003e38(int64_t a1) {
int64_t * v1 = (int64_t *)(a1 + 32); // 0x140003e38
int64_t v2 = *v1; // 0x140003e38
*v1 = v2 + 8;
int64_t v3 = *(int64_t *)v2; // 0x140003e41
int64_t v4; // 0x140003e38
int64_t v5; // 0x140003e38
int64_t v6; // 0x140003e4a
if (v3 == 0) {
// 0x140003e91
*(int64_t *)(a1 + 72) = (int64_t)"(null)";
v5 = 6;
goto lab_0x140003ea1;
} else {
// 0x140003e4a
v6 = *(int64_t *)(v3 + 8);
if (v6 == 0) {
// 0x140003e91
*(int64_t *)(a1 + 72) = (int64_t)"(null)";
v5 = 6;
goto lab_0x140003ea1;
} else {
// 0x140003e53
switch (*(int32_t *)(a1 + 60)) {
case 2: {
goto lab_0x140003e7d;
}
case 3: {
goto lab_0x140003e7d_2;
}
case 12: {
goto lab_0x140003e7d_2;
}
case 13: {
goto lab_0x140003e7d;
}
default: {
// 0x140003e7d
*(int64_t *)(a1 + 72) = v6;
int64_t v7 = (int64_t)*(int16_t *)v3; // 0x140003e81
v4 = v7;
v5 = v7;
if ((*(char *)(a1 + 65) - 99 & -17) == 0) {
goto lab_0x140003ea1;
} else {
goto lab_0x140003e89;
}
}
}
}
}
lab_0x140003ea1:
// 0x140003ea1
*(char *)(a1 + 84) = 0;
// 0x140003ea5
*(int32_t *)(a1 + 80) = (int32_t)v5;
return v5 & -256 | 1;
lab_0x140003e7d:
// 0x140003e7d
*(int64_t *)(a1 + 72) = v6;
v5 = (int64_t)*(int16_t *)v3;
goto lab_0x140003ea1;
lab_0x140003e7d_2:
// 0x140003e7d
*(int64_t *)(a1 + 72) = v6;
v4 = (int64_t)*(int16_t *)v3;
goto lab_0x140003e89;
lab_0x140003e89:
// 0x140003e89
*(char *)(a1 + 84) = 1;
int64_t v8 = v4 / 2; // 0x140003e8f
// 0x140003ea5
*(int32_t *)(a1 + 80) = (int32_t)v8;
return v8 & -256 | 1;
}
// Address range: 0x140003eac - 0x140004067
int64_t function_140003eac(int64_t a1) {
int32_t * v1 = (int32_t *)(a1 + 48); // 0x140003eb6
*v1 = *v1 | 16;
int32_t * v2 = (int32_t *)(a1 + 56); // 0x140003ebd
uint32_t v3 = *v2; // 0x140003ebd
int64_t v4; // 0x140003eac
if (v3 >= 0) {
// 0x140003eda
v4 = v3;
if (v3 == 0) {
char v5 = *(char *)(a1 + 65); // 0x140003edc
v4 = 0;
if (v5 != 103 != v5 != 71) {
// 0x140003eea
*v2 = 1;
v4 = 1;
}
}
} else {
int64_t v6 = (*(char *)(a1 + 65) - 65 & -33) == 0 ? 13 : 6; // 0x140003ed2
*v2 = (int32_t)v6;
v4 = v6;
}
int64_t v7 = a1 + 88; // 0x140003ef6
int64_t * v8 = (int64_t *)(a1 + 1120);
if ((char)function_1400030d0(v7, (0x100000000 * v4 + 0x15d00000000) / 0x100000000) == 0) {
int32_t v9 = 163; // 0x140003f1c
if (*v8 != 0) {
// 0x140003f23
v9 = (int32_t)(*(int64_t *)(a1 + 1112) / 2) - 349;
}
// 0x140003f2d
*v2 = v9;
}
int64_t v10 = *v8; // 0x140003f35
int64_t * v11 = (int64_t *)(a1 + 72); // 0x140003f43
*v11 = v10 == 0 ? v7 : v10;
int64_t * v12 = (int64_t *)(a1 + 32); // 0x140003f47
int64_t v13 = *v12; // 0x140003f47
*v12 = v13 + 8;
int64_t v14 = *v8; // 0x140003f50
int64_t v15 = __asm_movsd_8(__asm_movsd(*(int64_t *)v13)); // 0x140003f5c
int64_t v16; // 0x140003eac
int64_t v17; // 0x140003eac
int64_t v18; // 0x140003eac
if (v14 != 0) {
int64_t v19 = *(int64_t *)(a1 + 1112) / 2;
v18 = v19;
v17 = v14;
v16 = v19 + v14;
} else {
// 0x140003f7b
v18 = 512;
v17 = v7;
v16 = a1 + 600;
}
int64_t v20 = v18;
int64_t * v21 = (int64_t *)(a1 + 8); // 0x140003f9e
int64_t v22 = *v21; // 0x140003f9e
char * v23 = (char *)(a1 + 65); // 0x140003fa2
int64_t v24 = (int64_t)*v23; // 0x140003fa2
int32_t v25 = *v2; // 0x140003fbb
function_140008860(&v15, v17, v20, v16, v20, v24, (int64_t)v25, v24, v22, 1);
uint32_t v26 = *v1; // 0x140003fd8
int64_t v27 = v26 / 32; // 0x140003fdb
int64_t v28 = v27; // 0x140003fe0
if ((v26 & 32) != 0) {
// 0x140003fe2
v28 = v27;
if (*v2 == 0) {
// 0x140003fe8
v28 = function_140003590(*v11, *v21);
}
}
int64_t v29 = v28 & -256; // 0x140003ffc
if ((*v23 - 71 & -33) == 0) {
uint32_t v30 = *v1; // 0x140003ffe
v29 = v30 / 32;
if ((v30 & 32) == 0) {
// 0x140004008
v29 = function_1400034f0(*v11, *v21);
}
}
int64_t v31 = *v11; // 0x140004015
char v32 = *(char *)v31; // 0x140004019
char v33 = v32; // 0x14000401d
int64_t v34 = v31; // 0x14000401d
if (v32 == 45) {
// 0x14000401f
*v1 = *v1 | 64;
v34 = v31 + 1;
*v11 = v34;
v33 = *(char *)v34;
}
int64_t v35 = v29 & -256; // 0x140004019
int64_t v36 = (v35 | (int64_t)v33) + 183; // 0x14000402c
if ((char)v36 < 38) {
if ((1 << (v36 & 63) & 0x2100000021) != 0) {
// 0x140004042
*v1 = *v1 & -9;
*v23 = 115;
}
}
int64_t v37 = -1; // 0x14000404a
v37++;
while (*(char *)(v37 + v34) != 0) {
// 0x14000404e
v37++;
}
// 0x140004057
*(int32_t *)(a1 + 80) = (int32_t)v37;
return v35 | 1;
}
// Address range: 0x140004068 - 0x14000412d
int64_t function_140004068(int64_t a1, int32_t a2) {
// 0x140004068
switch (*(int32_t *)(a1 + 60)) {
case 2: {
goto lab_0x1400040e7;
}
case 3: {
goto lab_0x14000409b;
}
case 12: {
goto lab_0x14000409b;
}
case 13: {
goto lab_0x1400040e7;
}
default: {
// 0x140004089
if ((*(char *)(a1 + 65) - 99 & -17) == 0) {
goto lab_0x1400040e7;
} else {
goto lab_0x14000409b;
}
}
}
lab_0x1400040e7:;
int64_t v1 = a1 + 88; // 0x1400040e7
int64_t * v2 = (int64_t *)(a1 + 1120);
int64_t v3 = *v2; // 0x1400040eb
int64_t * v4 = (int64_t *)(a1 + 32); // 0x1400040f9
int64_t v5 = *v4; // 0x1400040f9
*v4 = v5 + 8;
*(char *)(v3 == 0 ? v1 : v3) = *(char *)v5;
*(int32_t *)(a1 + 80) = 1;
int64_t * v6 = v2; // 0x140004108
int64_t v7 = v1; // 0x140004108
goto lab_0x14000410f;
lab_0x14000409b:;
int64_t * v9 = (int64_t *)(a1 + 32); // 0x14000409b
int64_t v10 = *v9; // 0x14000409b
*v9 = v10 + 8;
int64_t * v11 = (int64_t *)(a1 + 1120);
int64_t v12 = *v11; // 0x1400040a4
int64_t v13; // 0x140004068
int64_t v14; // 0x140004068
if (v12 != 0) {
// 0x1400040c1
v14 = v12;
v13 = *(int64_t *)(a1 + 1112) / 2;
} else {
// 0x1400040b5
v14 = a1 + 88;
v13 = 512;
}
int64_t v15 = *(int64_t *)(a1 + 8); // 0x1400040cb
int64_t v16 = function_140007308(a1 + 80, v14, v13, *(int16_t *)v10, v15); // 0x1400040d8
v6 = v11;
v7 = v16;
if ((int32_t)v16 != 0) {
// 0x1400040e1
*(char *)(a1 + 64) = 1;
v6 = v11;
v7 = v16;
}
goto lab_0x14000410f;
lab_0x14000410f:;
int64_t v8 = *v6; // 0x140004115
*(int64_t *)(a1 + 72) = v8 == 0 ? a1 + 88 : v8;
return v7 & -256 | 1;
}
// Address range: 0x140004130 - 0x1400042af
int64_t function_140004130(int64_t a1, int64_t a2, int32_t a3, int64_t a4) {
int64_t v1 = function_140003dd0(*(int32_t *)(a1 + 60)); // 0x140004155
int32_t * v2; // 0x140004130
int64_t v3; // 0x140004130
switch (v1) {
case 1: {
int32_t * v4 = (int32_t *)(a1 + 48);
int64_t * v5 = (int64_t *)(a1 + 32); // 0x1400041e7
int64_t v6 = *v5; // 0x1400041e7
*v5 = v6 + 8;
unsigned char v7 = *(char *)v6;
if ((*v4 & 16) == 0) {
// 0x1400041fe
v2 = v4;
v3 = v7;
} else {
// 0x1400041f7
v2 = v4;
v3 = v7;
}
// break -> 0x140004202
break;
}
case 2: {
int32_t * v8 = (int32_t *)(a1 + 48);
int64_t * v9 = (int64_t *)(a1 + 32); // 0x1400041c7
int64_t v10 = *v9; // 0x1400041c7
*v9 = v10 + 8;
uint16_t v11 = *(int16_t *)v10;
if ((*v8 & 16) == 0) {
// 0x1400041de
v2 = v8;
v3 = v11;
} else {
// 0x1400041d7
v2 = v8;
v3 = v11;
}
// break -> 0x140004202
break;
}
case 4: {
int32_t * v12 = (int32_t *)(a1 + 48);
int64_t * v13 = (int64_t *)(a1 + 32); // 0x1400041a9
int64_t v14 = *v13; // 0x1400041a9
*v13 = v14 + 8;
uint32_t v15 = *(int32_t *)v14;
if ((*v12 & 16) == 0) {
// 0x1400041bf
v2 = v12;
v3 = v15;
} else {
// 0x1400041b9
v2 = v12;
v3 = v15;
}
// break -> 0x140004202
break;
}
case 8: {
int64_t * v16 = (int64_t *)(a1 + 32); // 0x140004192
int64_t v17 = *v16; // 0x140004192
*v16 = v17 + 8;
v2 = (int32_t *)(a1 + 48);
v3 = *(int64_t *)v17;
// break -> 0x140004202
break;
}
default: {
// 0x140004178
*_errno() = 22;
// 0x140004294
return function_140006270(v1 - 4, a2, (int64_t)a3, a4) & -256;
}
}
int32_t * v18 = v2;
uint32_t v19 = *v18; // 0x140004202
int64_t v20 = v19; // 0x140004202
int64_t v21 = v20; // 0x14000420c
int64_t v22 = v3; // 0x14000420c
if (v3 < 0 && (v19 & 16) != 0) {
// 0x140004213
v21 = v20 | 64;
*v18 = (int32_t)v21;
v22 = -v3;
}
int32_t * v23 = (int32_t *)(a1 + 56); // 0x14000421c
int32_t v24 = *v23; // 0x14000421c
if (v24 >= 0) {
// 0x14000422b
*v18 = (int32_t)v21 & -9;
function_1400030d0(a1 + 88, (int64_t)v24);
} else {
// 0x140004222
*v23 = 1;
}
if (v22 == 0) {
// 0x140004243
*v18 = *v18 & -33;
}
int64_t v25 = a2 & 0xffffffff; // 0x140004152
*(char *)(a1 + 84) = 0;
int64_t v26 = a4 & -256 | (int64_t)(a3 & 255); // 0x14000424b
if (v1 != 8) {
// 0x140004264
function_140003178(a1, v22 & 0xffffffff, v25, v26);
} else {
// 0x14000425a
function_140003200(a1, v22, v25, v26);
}
uint32_t v27 = *v18; // 0x14000426b
if ((char)v27 > -1) {
// 0x140004294
return v27 / 128 & 0x1ffff00 | 1;
}
int32_t * v28 = (int32_t *)(a1 + 80); // 0x140004275
int64_t * v29 = (int64_t *)(a1 + 72);
int64_t v30 = *v29;
if (*v28 != 0) {
// 0x14000427b
if (*(char *)v30 == 48) {
// 0x140004294
return v27 / 128 & 0x1ffff00 | 1;
}
}
int64_t v31 = v30 - 1; // 0x140004284
*v29 = v31;
*(char *)v31 = 48;
*v28 = *v28 + 1;
// 0x140004294
return v27 / 128 & 0x1ffff00 | 1;
}
// Address range: 0x1400042b0 - 0x140004336
int64_t function_1400042b0(int64_t a1) {
int64_t * v1 = (int64_t *)(a1 + 32); // 0x1400042ba
int64_t v2 = *v1; // 0x1400042ba
*v1 = v2 + 8;
int64_t v3 = *(int64_t *)v2; // 0x1400042c6
int64_t v4 = a1; // 0x1400042d1
if (_get_printf_count_output() != 0) {
uint32_t v5 = *(int32_t *)(a1 + 60); // 0x1400042e7
int64_t v6 = function_140003dd0(v5); // 0x1400042ea
switch (v6) {
case 1: {
// 0x140004320
*(char *)v3 = *(char *)(a1 + 40);
// 0x140004325
*(char *)(a1 + 64) = 1;
// 0x14000432b
return 1;
}
case 2: {
uint16_t v7 = *(int16_t *)(a1 + 40); // 0x140004317
*(int16_t *)v3 = v7;
// 0x140004325
*(char *)(a1 + 64) = 1;
// 0x14000432b
return (int64_t)v7 & -256 | 1;
}
}
int64_t v8 = v6 - 4; // 0x1400042fb
if (v8 == 0) {
uint32_t v9 = *(int32_t *)(a1 + 40); // 0x140004310
*(int32_t *)v3 = v9;
// 0x140004325
*(char *)(a1 + 64) = 1;
// 0x14000432b
return (int64_t)v9 & -256 | 1;
}
// 0x140004301
v4 = v5;
if (v8 == 4) {
int64_t v10 = (int64_t)*(int32_t *)(a1 + 40); // 0x140004307
*(int64_t *)v3 = v10;
// 0x140004325
*(char *)(a1 + 64) = 1;
// 0x14000432b
return v10 & -256 | 1;
}
}
// 0x1400042d3
*_errno() = 22;
// 0x14000432b
int64_t v11; // 0x1400042b0
int64_t v12; // 0x1400042b0
int64_t v13; // 0x1400042b0
return function_140006270(v4, v13, v12, v11) & -256;
}
// Address range: 0x140004338 - 0x1400043ce
int64_t function_140004338(int64_t a1) {
int64_t * v1 = (int64_t *)(a1 + 32); // 0x14000433e
int64_t v2 = *v1; // 0x14000433e
*v1 = v2 + 8;
int32_t v3 = *(int32_t *)(a1 + 56); // 0x14000434a
int64_t v4 = *(int64_t *)v2; // 0x140004352
int32_t * v5 = (int32_t *)(a1 + 60); // 0x14000435b
int32_t v6 = v3 == -1 ? 0x7fffffff : v3; // 0x14000435e
int64_t * v7 = (int64_t *)(a1 + 72); // 0x140004362
*v7 = v4;
switch (*v5) {
case 2: {
goto lab_0x1400043ab;
}
case 3: {
goto lab_0x14000438d;
}
case 12: {
goto lab_0x14000438d;
}
default: {
// 0x140004375
if (*v5 == 13) {
goto lab_0x1400043ab;
} else {
// 0x14000437b
if ((*(char *)(a1 + 65) - 99 & -17) == 0) {
goto lab_0x1400043ab;
} else {
goto lab_0x14000438d;
}
}
}
}
lab_0x1400043ab:;
int64_t v8 = v4; // 0x1400043ae
if (v4 == 0) {
// 0x1400043b0
*v7 = (int64_t)"(null)";
v8 = (int64_t)"(null)";
}
int64_t v9 = function_1400074a4(v8, (int64_t)v6); // 0x1400043be
// 0x1400043c3
*(int32_t *)(a1 + 80) = (int32_t)v9;
return v9 & -256 | 1;
lab_0x14000438d:;
int64_t v10 = v4; // 0x140004390
if (v4 == 0) {
// 0x140004392
*v7 = (int64_t)L"(null)";
v10 = (int64_t)L"(null)";
}
// 0x14000439d
*(char *)(a1 + 84) = 1;
v9 = function_1400075f4(v10, (int64_t)v6);
// 0x1400043c3
*(int32_t *)(a1 + 80) = (int32_t)v9;
return v9 & -256 | 1;
}
// Address range: 0x1400043d0 - 0x14000446a
int64_t function_1400043d0(int64_t a1) {
uint32_t v1 = *(int32_t *)(a1 + 20); // 0x1400043d4
if ((v1 & 0x1000) != 0) {
// 0x140004465
return (int64_t)(v1 / 0x1000) & -256 | 1;
}
int32_t v2 = _fileno((struct _IO_FILE *)a1); // 0x1400043e2
int64_t v3 = v2; // 0x1400043e7
int64_t v4 = a1; // 0x140004402
int64_t v5 = &g35; // 0x140004402
if (v2 <= 0xfffffffd) {
int64_t v6 = v3 & 63; // 0x14000440e
int64_t v7 = *(int64_t *)(8 * v3 / 64 + (int64_t)&g85); // 0x140004415
v4 = 9 * v6;
v5 = v7 + 72 * v6;
}
int64_t v8 = v4; // 0x140004426
int64_t v9 = v3; // 0x140004426
if (*(char *)(v5 + 57) == 0) {
int64_t v10 = v3 + 2; // 0x140004428
int64_t v11 = v10 & 0xffffffff; // 0x14000442f
v8 = v4;
v9 = v3;
int64_t v12 = &g35; // 0x14000442f
if ((int32_t)v10 >= 2) {
// 0x140004431
v9 = v3 & 63;
v11 = *(int64_t *)(8 * v3 / 64 + (int64_t)&g85);
v8 = 9 * v9;
v12 = v11 + 72 * v9;
}
// 0x140004448
if ((*(char *)(v12 + 61) & 1) == 0) {
// 0x140004465
return v11 & -256 | 1;
}
}
// 0x14000444f
*_errno() = 22;
// 0x140004465
return function_140006270(v8, v5, v9, v3) & -256;
}
// Address range: 0x14000446c - 0x14000458d
int64_t function_14000446c(int64_t a1) {
int32_t * v1 = (int32_t *)(a1 + 80);
uint32_t v2 = *v1;
if (*(char *)(a1 + 84) == 0 || v2 < 1) {
int64_t v3 = a1 + 1128; // 0x140004531
int64_t v4 = *(int64_t *)v3; // 0x140004538
int64_t v5 = a1 + 40; // 0x14000453b
int64_t v6 = *(int64_t *)(a1 + 72); // 0x14000453f
if ((*(int32_t *)(v4 + 20) & 0x1000) == 0 || *(int64_t *)(v4 + 8) != 0) {
// 0x14000455d
function_140004590(v3, (int16_t *)v6, (int64_t)v2, v5, a1 + 16);
// 0x14000456e
return function_140011ed0(g29);
}
int32_t * v7 = (int32_t *)v5; // 0x140004558
*v7 = *v7 + v2;
// 0x14000456e
return function_140011ed0(g29);
}
int64_t * v8 = (int64_t *)(a1 + 8); // 0x1400044a7
int64_t v9; // bp-36, 0x14000446c
int64_t v10 = &v9; // 0x1400044ab
int32_t v11; // bp-40, 0x14000446c
int64_t v12 = &v11; // 0x1400044b4
int64_t v13 = a1 + 1128;
int64_t v14 = a1 + 40;
int32_t * v15 = (int32_t *)v14;
int64_t v16 = a1 + 16;
int64_t v17 = *(int64_t *)(a1 + 72); // 0x1400044a5
int64_t v18 = 0; // 0x1400044a5
while (true) {
lab_0x1400044a7:
// 0x1400044a7
v11 = 0;
if ((int32_t)function_140007308(v12, v10, 6, *(int16_t *)v17, *v8) != 0) {
// break -> 0x140004527
break;
}
uint32_t v19 = v11; // 0x1400044d6
if (v19 == 0) {
// break -> 0x140004527
break;
}
int64_t v20 = *(int64_t *)v13; // 0x1400044e7
if ((*(int32_t *)(v20 + 20) & 0x1000) == 0) {
// 0x140004508
function_140004590(v13, (int16_t *)&v9, (int64_t)v19, v14, v16);
goto lab_0x14000451e;
} else {
// 0x1400044f9
if (*(int64_t *)(v20 + 8) != 0) {
// 0x140004508
function_140004590(v13, (int16_t *)&v9, (int64_t)v19, v14, v16);
goto lab_0x14000451e;
} else {
// 0x140004503
*v15 = *v15 + v19;
goto lab_0x14000451e;
}
}
}
// 0x140004527
*v15 = -1;
// 0x14000456e
return function_140011ed0(g29);
lab_0x14000451e:;
int64_t v21 = v18 + 1; // 0x14000451e
v17 += 2;
v18 = v21 & 0xffffffff;
if (*v1 == (int32_t)v21) {
// 0x14000456e
return function_140011ed0(g29);
}
goto lab_0x1400044a7;
}
// Address range: 0x140004590 - 0x140004685
int64_t function_140004590(int64_t a1, int16_t * a2, int64_t a3, int64_t a4, int64_t a5) {
int64_t * v1 = (int64_t *)a5; // 0x1400045be
int64_t v2 = *v1; // 0x1400045be
int64_t v3 = v2; // 0x1400045c4
if (v2 == 0) {
// 0x1400045c6
v3 = (int64_t)_errno();
*v1 = v3;
}
int64_t v4 = 0x100000000 * a3;
int32_t * v5 = (int32_t *)v3; // 0x1400045d1
int32_t v6 = *v5; // 0x1400045d1
*v5 = 0;
int64_t result = v3; // 0x140004652
int64_t v7; // 0x140004590
int64_t v8; // 0x140004590
int64_t v9; // 0x140004590
int64_t v10; // 0x140004590
char v11; // 0x1400045df
int64_t v12; // 0x140004590
int32_t * v13; // 0x140004590
if (v4 != 0) {
// 0x1400045dc
v12 = (int64_t)a2;
v13 = (int32_t *)a4;
v10 = v12;
v9 = a1;
while (true) {
lab_0x1400045dc:
// 0x1400045dc
v11 = *(char *)v10;
uint32_t v14 = *(int32_t *)(v9 + 20); // 0x1400045e2
if ((v14 & 0x1000) == 0) {
goto lab_0x1400045f7;
} else {
int64_t v15 = v14 / 0x1000; // 0x1400045e5
v7 = v15;
v8 = v15;
if (*(int64_t *)(v15 + 8) == 0) {
goto lab_0x140004645;
} else {
goto lab_0x1400045f7;
}
}
}
}
goto lab_0x140004659_2;
lab_0x1400045f7:;
int64_t v16 = (int64_t)v11 & 0xffffffff; // 0x1400045f7
int64_t v17 = function_140008bc0(v16, v16); // 0x1400045fc
v7 = v17;
v8 = v16;
int64_t v18; // 0x140004621
if ((int32_t)v17 != -1) {
goto lab_0x140004645;
} else {
int64_t v19 = *v1; // 0x140004606
int64_t v20 = v19; // 0x14000460c
if (v19 == 0) {
// 0x14000460e
v20 = (int64_t)_errno();
*v1 = v20;
}
int64_t v21 = v20;
if (*(int32_t *)v21 != 42) {
// 0x140004656
*v13 = -1;
result = v21;
goto lab_0x140004659_2;
}
uint32_t v22 = *(int32_t *)(v16 + 20); // 0x14000461e
v18 = v22 / 0x1000;
if ((v22 & 0x1000) == 0) {
goto lab_0x140004633;
} else {
// 0x140004629
v7 = v18;
v8 = v18;
if (*(int64_t *)(v18 + 8) == 0) {
goto lab_0x140004645;
} else {
goto lab_0x140004633;
}
}
}
lab_0x140004645:;
// 0x140004645
int64_t v23; // 0x140004590
int32_t v24 = *(int32_t *)&v23 + 1; // 0x140004647
int64_t v25 = v7; // 0x140004647
int64_t v26 = v8; // 0x140004647
goto lab_0x14000464c;
lab_0x14000464c:
// 0x14000464c
*v13 = v24;
int64_t v27 = v10 + 1; // 0x14000464c
v10 = v27;
v9 = v26;
result = v25;
if (v27 == v4 / 0x100000000 + v12) {
// break -> 0x140004659
goto lab_0x140004659_2;
}
goto lab_0x1400045dc;
lab_0x140004633:;
int64_t v28 = function_140008bc0(63, v18); // 0x14000463b
v7 = v28;
v8 = 63;
v24 = -1;
v25 = v28;
v26 = 63;
if ((int32_t)v28 == -1) {
goto lab_0x14000464c;
} else {
goto lab_0x140004645;
}
lab_0x140004659_2:
// 0x140004659
if (!((v6 == 0 | *v5 != 0))) {
// 0x140004663
*v5 = v6;
}
// 0x140004666
return result;
}
// Address range: 0x140004714 - 0x140004896
int64_t function_140004714(int32_t a1, int64_t a2) {
int64_t v1 = function_140007cc0(); // 0x14000472d
if (v1 == 0) {
// 0x140004881
return 0;
}
int64_t v2 = *(int64_t *)v1; // 0x140004741
int64_t v3 = v2 + 176;
int64_t v4 = v2;
int32_t * v5 = (int32_t *)v4;
while (*v5 != a1) {
// 0x140004757
if (v4 == v3) {
// 0x140004881
return 0;
}
v4 += 16;
v5 = (int32_t *)v4;
}
// 0x140004763
if (v4 == 0) {
// 0x140004881
return 0;
}
int64_t * v6 = (int64_t *)(v4 + 8); // 0x14000476c
int64_t v7 = *v6; // 0x14000476c
if (v7 == 0) {
// 0x140004881
return 0;
}
if (v7 == 5) {
// 0x14000477f
*v6 = 0;
// 0x140004881
return v7 + 0xfffffffc & 0xffffffff;
}
// 0x14000478c
if (v7 == 1) {
// 0x140004881
return 0xffffffff;
}
int64_t * v8 = (int64_t *)(v1 + 8); // 0x14000479a
int64_t v9 = *v8; // 0x14000479a
*v8 = a2;
int32_t v10 = *(int32_t *)(v4 + 4); // 0x1400047a2
if (v10 != 8) {
// 0x140004866
*v6 = 0;
function_1400124a0(v10, a2, (int32_t)v7);
// 0x140004876
*v8 = v9;
// 0x140004881
return 0xffffffff;
}
int64_t v11 = v2 + 48;
*(int64_t *)(v11 + 8) = 0;
while (v11 != v3) {
// 0x1400047b9
v11 += 16;
*(int64_t *)(v11 + 8) = 0;
}
int32_t v12 = *v5; // 0x1400047c6
int32_t * v13 = (int32_t *)(v1 + 16); // 0x1400047cc
uint32_t v14 = *v13; // 0x1400047cc
int64_t v15 = 130; // 0x140004714
int64_t v16; // 0x140004714
switch (v12) {
case -0x3fffff73: {
goto lab_0x140004850;
}
case -0x3fffff72: {
// 0x140004844
v15 = 131;
goto lab_0x140004850;
}
case -0x3fffff71: {
// 0x14000483d
v15 = 134;
goto lab_0x140004850;
}
case -0x3fffff70: {
// 0x140004836
v15 = 129;
goto lab_0x140004850;
}
case -0x3fffff6f: {
// 0x14000482f
v15 = 132;
goto lab_0x140004850;
}
case -0x3fffff6e: {
// 0x140004828
v15 = 138;
goto lab_0x140004850;
}
case -0x3fffff6d: {
// 0x140004821
v15 = 133;
goto lab_0x140004850;
}
case -0x3ffffd4c: {
// 0x140004850
v15 = 142;
goto lab_0x140004850;
}
default: {
// 0x140004809
v15 = 141;
v16 = v14;
if (v12 != -0x3ffffd4b) {
goto lab_0x140004853;
} else {
goto lab_0x140004850;
}
}
}
lab_0x140004850:
// 0x140004850
*v13 = (int32_t)v15;
v16 = v15;
goto lab_0x140004853;
lab_0x140004853:
// 0x140004853
function_1400124a0(8, v16, (int32_t)v7);
*v13 = v14;
// 0x140004876
*v8 = v9;
// 0x140004881
return 0xffffffff;
}
// Address range: 0x140004898 - 0x14000489f
int64_t function_140004898(void) {
// 0x140004898
return (uint32_t)g64;
}
// Address range: 0x1400048a0 - 0x1400048a7
int64_t function_1400048a0(int64_t a1) {
// 0x1400048a0
g64 = a1;
int64_t result; // 0x1400048a0
return result;
}
// Address range: 0x1400048c8 - 0x1400048d0
int64_t function_1400048c8(int64_t a1) {
// 0x1400048c8
g65 = a1;
int64_t result; // 0x1400048c8
return result;
}
// Address range: 0x140004928 - 0x140004ae7
int64_t function_140004928(int64_t a1, int32_t a2, int32_t a3, int64_t * a4, int64_t * a5) {
int64_t v1 = a3;
*a5 = 0;
*a4 = 1;
int64_t v2 = 0; // 0x140004964
if (a2 != 0) {
int64_t v3 = a2;
*(int64_t *)v3 = v1;
v2 = v3 + 8;
}
int64_t v4 = (int64_t)a4;
int64_t v5; // 0x140004928
int64_t v6 = &v5; // 0x14000496d
int64_t v7 = v1; // 0x14000496d
int64_t v8 = 0; // 0x14000496d
int64_t v9 = a1; // 0x14000496d
int64_t v10; // 0x140004928
int64_t v11; // 0x140004928
int64_t v12; // 0x140004928
int64_t v13; // 0x140004928
int64_t v14; // 0x140004928
int64_t v15; // 0x140004928
while (true) {
int64_t v16 = v9;
int64_t v17 = v8;
int64_t v18 = v7;
char * v19 = (char *)v16; // 0x140004970
int64_t v20; // 0x140004928
int64_t v21; // 0x140004928
int64_t v22; // 0x140004928
int64_t v23; // 0x140004928
char v24; // 0x140004928
if (*v19 != 34) {
// 0x140004984
*a5 = *a5 + 1;
int64_t v25 = 0; // 0x14000498a
if (v18 != 0) {
// 0x14000498c
*(char *)v18 = *v19;
v25 = v18 + 1;
}
int64_t v26 = v25;
char v27 = *v19; // 0x140004993
int64_t v28 = v16 + 1; // 0x140004996
int64_t v29 = function_14000a40c((int64_t)v27 & 0xffffffff); // 0x14000499b
int64_t v30 = v29; // 0x1400049a2
int64_t v31 = v26; // 0x1400049a2
int64_t v32 = v28; // 0x1400049a2
if ((int32_t)v29 != 0) {
// 0x1400049a4
*a5 = *a5 + 1;
int64_t v33 = v29; // 0x1400049aa
int64_t v34 = 0; // 0x1400049aa
if (v26 != 0) {
// 0x1400049ac
*(char *)v26 = *(char *)v28;
v33 = v29 & -256;
v34 = v26 + 1;
}
// 0x1400049b3
v30 = v33;
v31 = v34;
v32 = v16 + 2;
}
// 0x1400049b6
v14 = v32;
v12 = v31;
v10 = v30;
v20 = v10;
v22 = v12;
v21 = v17;
v24 = v27;
v23 = v14;
if (v27 == 0) {
// break -> 0x1400049d7
break;
}
} else {
// 0x140004975
v20 = v6;
v22 = v18;
v21 = (char)v17 == 0;
v24 = 34;
v23 = v16 + 1;
}
// 0x1400049bb
v9 = v23;
v8 = v21;
v7 = v22;
int64_t v35 = v20;
if ((char)v8 == 0) {
char v36 = v24;
if (v36 != 32 != v36 != 9) {
// 0x1400049cc
v11 = v35;
v13 = 0;
v15 = v9;
if (v7 == 0) {
goto lab_0x1400049da;
} else {
// 0x1400049d1
*(char *)(v7 - 1) = 0;
v11 = v35;
v13 = v7;
v15 = v9;
goto lab_0x1400049da;
}
}
}
// 0x140004970
v6 = v35;
}
// 0x1400049d7
v11 = v10;
v13 = v12;
v15 = v14 - 1;
goto lab_0x1400049da;
lab_0x140004a58:;
// 0x140004a58
int64_t v77; // 0x140004928
int64_t v87 = v77;
int64_t v76; // 0x140004928
int64_t v88 = v76;
int32_t v75; // 0x140004928
int32_t v89 = v75;
int64_t v61; // 0x140004928
int64_t v90 = v61; // 0x140004a5a
int64_t v74; // 0x140004928
int64_t v91 = v74; // 0x140004a5a
int64_t v92 = v74; // 0x140004a5a
int64_t v93 = v61; // 0x140004a5a
if ((int32_t)v74 != 0) {
int64_t v94 = v90;
int64_t v95 = 0; // 0x140004a4d
if (v94 != 0) {
// 0x140004a4f
*(char *)v94 = 92;
v95 = v94 + 1;
}
int64_t v96 = v91 + 0xffffffff; // 0x140004a48
int64_t v97 = v96 & 0xffffffff; // 0x140004a48
*a5 = *a5 + 1;
v92 = v97;
v93 = v95;
while ((int32_t)v96 != 0) {
// 0x140004a48
v94 = v95;
v95 = 0;
if (v94 != 0) {
// 0x140004a4f
*(char *)v94 = 92;
v95 = v94 + 1;
}
// 0x140004a55
v96 = v97 + 0xffffffff;
v97 = v96 & 0xffffffff;
*a5 = *a5 + 1;
v92 = v97;
v93 = v95;
}
}
int64_t v83 = v93;
int64_t v86 = v92;
char * v85 = (char *)v87;
char v98 = *v85; // 0x140004a5c
if (v98 == 0) {
// break -> 0x140004aa8
goto lab_0x140004aa8_2;
}
if ((char)v88 != 0) {
goto lab_0x140004a6f;
} else {
switch (v98) {
case 32: {
goto lab_0x140004aa8_2;
}
case 9: {
goto lab_0x140004aa8_2;
}
default: {
goto lab_0x140004a6f;
}
}
}
lab_0x140004a6f:;
int64_t v99 = v83; // 0x140004a71
int64_t v100 = v87; // 0x140004a71
if (v89 != 0) {
char v101 = v98; // 0x140004a76
int64_t v102 = 0; // 0x140004a76
if (v83 != 0) {
// 0x140004a78
*(char *)v83 = v98;
v101 = *v85;
v102 = v83 + 1;
}
int64_t v103 = v102;
int64_t v104 = v103; // 0x140004a89
int64_t v105 = v87; // 0x140004a89
if ((int32_t)function_14000a40c((int64_t)v101) != 0) {
// 0x140004a8b
*a5 = *a5 + 1;
int64_t v106 = v87 + 1; // 0x140004a8e
v104 = 0;
v105 = v106;
if (v103 != 0) {
// 0x140004a96
*(char *)v103 = *(char *)v106;
v104 = v103 + 1;
v105 = v106;
}
}
// 0x140004a9d
*a5 = *a5 + 1;
v99 = v104;
v100 = v105;
}
int64_t v57 = v99; // 0x140004aa3
int64_t v58 = v88; // 0x140004aa3
int64_t v59 = v100 + 1; // 0x140004aa3
goto lab_0x140004a0e;
lab_0x140004a44:;
// 0x140004a44
int64_t v72; // 0x140004928
v74 = v72 / 2;
int32_t v78; // 0x140004928
v75 = v78;
int64_t v79; // 0x140004928
v76 = v79;
int64_t v80; // 0x140004928
v77 = v80;
goto lab_0x140004a58;
lab_0x140004a3b:
// 0x140004a3b
v78 = 0;
int64_t v60; // 0x140004928
v79 = (char)v60 == 0;
int64_t v73; // 0x140004928
v80 = v73;
goto lab_0x140004a44;
lab_0x1400049da:;
unsigned char v37 = *(char *)v15; // 0x1400049dd
int64_t v38 = v11 & -256 | (int64_t)v37; // 0x1400049dd
int64_t v39 = v2; // 0x1400049e1
int64_t result = v38; // 0x1400049e1
if (v37 != 0) {
int64_t v40 = v38; // 0x1400049dd
int64_t v41 = v2;
int64_t v42 = v15; // 0x140004928
int64_t v43 = 0; // 0x140004928
int64_t v44 = v13; // 0x140004928
while (true) {
int64_t v45 = v44;
int64_t v46 = v41;
char v47 = v40; // 0x1400049e7
int64_t v48 = v42; // 0x1400049e9
int64_t v49 = v40; // 0x1400049e9
int64_t v50 = v40; // 0x1400049e9
int64_t v51 = v42; // 0x1400049e9
char v52 = v47; // 0x1400049e9
if (v47 != 32 != v47 != 9) {
int64_t v53 = v48 + 1; // 0x1400049ef
unsigned char v54 = *(char *)v53; // 0x1400049f2
int64_t v55 = v49 & -256 | (int64_t)v54; // 0x1400049f2
v48 = v53;
v49 = v55;
v50 = v55;
v51 = v53;
v52 = v54;
while (v54 != 32 != v54 != 9) {
// 0x1400049ef
v53 = v48 + 1;
v54 = *(char *)v53;
v55 = v49 & -256 | (int64_t)v54;
v48 = v53;
v49 = v55;
v50 = v55;
v51 = v53;
v52 = v54;
}
}
// 0x1400049f6
v39 = v46;
result = v50;
if (v52 == 0) {
// break -> 0x140004abb
break;
}
int64_t v56 = 0; // 0x140004a01
if (v46 != 0) {
// 0x140004a03
*(int64_t *)v46 = v45;
v56 = v46 + 8;
}
// 0x140004a0a
v41 = v56;
*a4 = v4 + 1;
v57 = v45;
v58 = v43;
v59 = v51;
while (true) {
lab_0x140004a0e:
// 0x140004a0e
v60 = v58;
v61 = v57;
char v62 = *(char *)v59; // 0x140004a1c
int64_t v63 = v59; // 0x140004a21
int64_t v64 = v59; // 0x140004a21
int64_t v65 = 0; // 0x140004a21
char v66 = v62; // 0x140004a21
if (v62 == 92) {
int64_t v67 = v63 + 1; // 0x140004a17
int64_t v68 = 1; // 0x140004a1a
char v69 = *(char *)v67; // 0x140004a1c
int64_t v70 = v68; // 0x140004a21
v63 = v67;
v64 = v67;
v65 = v68;
v66 = v69;
while (v69 == 92) {
// 0x140004a17
v67 = v63 + 1;
v68 = v70 + 1 & 0xffffffff;
v69 = *(char *)v67;
v70 = v68;
v63 = v67;
v64 = v67;
v65 = v68;
v66 = v69;
}
}
char v71 = v66;
v72 = v65;
v73 = v64;
v74 = v72;
v75 = 1;
v76 = v60;
v77 = v73;
if (v71 != 34) {
goto lab_0x140004a58;
} else {
// 0x140004a28
v78 = 1;
v79 = v60;
v80 = v73;
if ((v72 & 1) != 0) {
goto lab_0x140004a44;
} else {
if ((char)v60 == 0) {
goto lab_0x140004a3b;
} else {
int64_t v81 = v73 + 1; // 0x140004a31
v78 = 1;
v79 = v60;
v80 = v81;
if (*(char *)v81 != v71) {
goto lab_0x140004a3b;
} else {
goto lab_0x140004a44;
}
}
}
}
}
lab_0x140004aa8_2:;
int64_t v82 = 0; // 0x140004aab
if (v83 != 0) {
// 0x140004aad
*(char *)v83 = 0;
v82 = v83 + 1;
}
// 0x140004ab3
*a5 = *a5 + 1;
unsigned char v84 = *v85; // 0x1400049dd
v40 = v86 & -256 | (int64_t)v84;
v42 = v87;
v43 = v88;
v44 = v82;
v39 = v41;
result = v40;
if (v84 == 0) {
// break -> 0x140004abb
break;
}
}
}
// 0x140004abb
if (v39 != 0) {
// 0x140004ac0
*(int64_t *)v39 = 0;
}
// 0x140004ac4
*a4 = v4 + 1;
return result;
}
// Address range: 0x140004ae8 - 0x140004b45
int64_t function_140004ae8(uint64_t a1, uint64_t a2, uint64_t a3) {
// 0x140004ae8
if (a1 >= 0x1fffffffffffffff || 0xffffffffffffffff / a3 <= a2) {
// 0x140004b3f
return 0;
}
int64_t v1 = 8 * a1; // 0x140004b0e
uint64_t v2 = a3 * a2; // 0x140004b12
int64_t result = 0; // 0x140004b1f
if (v2 < -1 - v1) {
int64_t * v3 = _calloc_base((int32_t)(v2 + v1), 1); // 0x140004b29
_free_base(NULL);
result = (int64_t)v3;
}
// 0x140004b3f
return result;
}
// Address range: 0x140004b48 - 0x140004cce
int64_t function_140004b48(int64_t a1) {
int32_t v1 = a1; // 0x140004b60
if (v1 == 0) {
// 0x140004cbb
return 0;
}
if (v1 >= 3) {
// 0x140004b70
*_errno() = 22;
int64_t v2; // 0x140004b48
int64_t v3; // 0x140004b48
int64_t v4; // 0x140004b48
function_140006270(a1, v4, v3, v2);
// 0x140004cbb
return 22;
}
// 0x140004b86
__acrt_initialize_multibyte();
function_140009814(0, (int64_t)&g66, 260);
g73 = &g66;
int64_t v5; // 0x140004b48
if (g77 == NULL) {
// 0x140004bba
v5 = &g66;
goto lab_0x140004bbd;
} else {
// 0x140004bb5
v5 = (int64_t)g77;
if (*g77 != 0) {
goto lab_0x140004bbd;
} else {
// 0x140004bba
v5 = &g66;
goto lab_0x140004bbd;
}
}
lab_0x140004bbd:;
int32_t v6 = 0; // bp+24, 0x140004bc1
int64_t v7 = 0; // bp+32, 0x140004bd1
function_140004928(v5, 0, 0, (int64_t *)&v6, &v7);
int64_t v8 = v6; // 0x140004bdf
int64_t v9 = function_140004ae8(v8, v7, 1); // 0x140004bf0
if (v9 == 0) {
// 0x140004bfd
*_errno() = 12;
_free_base(NULL);
// 0x140004cbb
return 12;
}
// 0x140004c15
function_140004928(v5, (int32_t)v9, (int32_t)(v9 + 8 * v8), (int64_t *)&v6, &v7);
if (v1 == 1) {
// 0x140004c37
g75 = v9;
*(int32_t *)&g74 = v6 - 1;
// 0x140004cb6
_free_base(NULL);
// 0x140004cbb
return 0;
}
int64_t v10 = 0; // bp+16, 0x140004c51
int64_t v11 = function_1400096f8(v9, &v10); // 0x140004c58
int64_t v12 = v10;
if ((int32_t)v11 != 0) {
// 0x140004c63
_free_base((int64_t *)v12);
v10 = 0;
_free_base((int64_t *)v9);
// 0x140004cbb
return v11 & 0xffffffff;
}
int32_t v13 = 0; // 0x140004c89
if (*(int64_t *)v12 != 0) {
int64_t v14 = v12 + 8; // 0x140004c8b
int64_t v15 = 1; // 0x140004c8f
int64_t v16 = v15; // 0x140004c95
int64_t v17 = v14; // 0x140004c95
while (*(int64_t *)v14 != 0) {
// 0x140004c8b
v14 = v17 + 8;
v15 = v16 + 1;
v16 = v15;
v17 = v14;
}
// 0x140004c97
v13 = v15;
}
// 0x140004c97
*(int32_t *)&g74 = v13;
v10 = 0;
g75 = v12;
_free_base(NULL);
v10 = 0;
// 0x140004cb6
_free_base((int64_t *)v9);
// 0x140004cbb
return 0;
}
// Address range: 0x140004cd0 - 0x140004d3c
int64_t function_140004cd0(void) {
// 0x140004cd0
if (g67 != 0) {
// 0x140004d31
return 0;
}
// 0x140004ce9
__acrt_initialize_multibyte();
int64_t v1; // 0x140004cd0
int64_t v2; // 0x140004cd0
int64_t v3 = function_14000a52c(v2, v1); // 0x140004cee
if (v3 == 0) {
// 0x140004d27
_free_base((int64_t *)v3);
// 0x140004d31
return 0xffffffff;
}
int64_t v4 = function_140004d3c(v3, v1); // 0x140004d03
int64_t v5 = 0xffffffff; // 0x140004d0b
if (v4 != 0) {
// 0x140004d12
g69 = v4;
g67 = v4;
v5 = 0;
}
// 0x140004d20
_free_base(NULL);
// 0x140004d27
_free_base((int64_t *)v3);
// 0x140004d31
return v5 & 0xffffffff;
}
// Address range: 0x140004d3c - 0x140004e44
int64_t function_140004d3c(int64_t a1, int64_t a2) {
int64_t * v1 = _calloc_base(1, 8); // 0x140004d93
if (v1 == NULL) {
// 0x140004e0c
_free_base(NULL);
return 0;
}
int64_t result = (int64_t)v1; // 0x140004d93
char * v2 = (char *)a1; // 0x140004da3
char v3 = *v2; // 0x140004da3
int64_t v4 = a1; // 0x140004da8
if (v3 == 0) {
// 0x140004e0c
_free_base(NULL);
return result;
}
int64_t v5 = -1;
int64_t v6 = v5 + 1; // 0x140004dae
while (*(char *)(v6 + v4) != 0) {
// 0x140004dae
v5 = v6;
v6 = v5 + 1;
}
int64_t v7 = v5 + 2; // 0x140004db7
int64_t v8 = result; // 0x140004dbc
int64_t result2; // 0x140004d3c
int32_t v9; // 0x140004dc6
int64_t * v10; // 0x140004dc6
if (v3 != 61) {
// 0x140004dbe
v9 = v7;
v10 = _calloc_base(v9, 1);
if (v10 == NULL) {
// 0x140004df8
_3f__3f__24_free_environment_40_D_40__40_YAXQEAPEAD_40_Z((char **)&g113);
_free_base(NULL);
result2 = 0;
goto lab_0x140004e0c;
}
// 0x140004dd3
if (strcpy_s((char *)v10, v9, v2) != 0) {
// 0x140004e2f
function_140006290(0, 0, 0, 0, 0);
__asm_int3();
__asm_int3();
return __asm_int3();
}
// 0x140004de7
*(int64_t *)result = (int64_t)v10;
_free_base(NULL);
v8 = result + 8;
}
// 0x140004df3
v4 += v7;
char * v11 = (char *)v4; // 0x140004da3
char v12 = *v11; // 0x140004da3
result2 = result;
while (v12 != 0) {
int64_t v13 = v8;
char * v14 = v11;
v5 = -1;
v6 = v5 + 1;
while (*(char *)(v6 + v4) != 0) {
// 0x140004dae
v5 = v6;
v6 = v5 + 1;
}
// 0x140004db7
v7 = v5 + 2;
v8 = v13;
if (v12 != 61) {
// 0x140004dbe
v9 = v7;
v10 = _calloc_base(v9, 1);
if (v10 == NULL) {
// 0x140004df8
_3f__3f__24_free_environment_40_D_40__40_YAXQEAPEAD_40_Z((char **)&g113);
_free_base(NULL);
result2 = 0;
goto lab_0x140004e0c;
}
// 0x140004dd3
if (strcpy_s((char *)v10, v9, v14) != 0) {
// 0x140004e2f
function_140006290(0, 0, 0, 0, 0);
__asm_int3();
__asm_int3();
return __asm_int3();
}
// 0x140004de7
*(int64_t *)v13 = (int64_t)v10;
_free_base(NULL);
v8 = v13 + 8;
}
// 0x140004df3
v4 += v7;
v11 = (char *)v4;
v12 = *v11;
result2 = result;
}
lab_0x140004e0c:
// 0x140004e0c
_free_base(NULL);
return result2;
}
// Address range: 0x140004e88 - 0x140004f59
int64_t function_140004e88(void) {
// 0x140004e88
if (g68 == 0) {
// 0x140004eaa
return 0xffffffff;
}
int64_t * v1 = (int64_t *)g68; // 0x140004f3b
int64_t result = *v1; // 0x140004f3b
int64_t * v2 = v1; // 0x140004f41
if (result == 0) {
// 0x140004eaa
return result;
}
int64_t v3 = g68; // 0x140004f41
int32_t v4 = function_14000a47c(0, 0, result, -1, 0, 0);
int64_t result2 = 0xffffffff; // 0x140004ee6
while (v4 != 0) {
int64_t * v5 = _calloc_base(v4, 1); // 0x140004ef0
if (v5 == NULL) {
// 0x140004f4c
_free_base(v5);
result2 = 0xffffffff;
return result2;
}
int64_t v6 = (int64_t)v5; // 0x140004ef0
if ((int32_t)function_14000a47c(0, 0, *v2, -1, v6, v4) == 0) {
// 0x140004f4c
_free_base(v5);
result2 = 0xffffffff;
return result2;
}
// 0x140004f26
function_14000aa38(v6, 0);
_free_base(NULL);
v3 += 8;
v2 = (int64_t *)v3;
int64_t v7 = *v2; // 0x140004f3b
result2 = v7;
if (v7 == 0) {
// break -> 0x140004eaa
break;
}
v4 = function_14000a47c(0, 0, v7, -1, 0, 0);
result2 = 0xffffffff;
}
lab_0x140004eaa:
// 0x140004eaa
return result2;
}
// Address range: 0x140005058 - 0x14000505d
int64_t function_140005058(void) {
// 0x140005058
return function_140004cd0();
}
// Address range: 0x140005104 - 0x14000513c
int64_t function_140005104(void) {
// 0x140005104
int64_t v1; // 0x140005104
__acrt_lock((int32_t)v1);
int64_t v2; // 0x140005104
function_14000513c(v2);
int64_t v3; // 0x140005104
return __acrt_lock2((int32_t)v3, v1);
}
// Address range: 0x14000513c - 0x1400051f7
int64_t function_14000513c(int64_t a1) {
// 0x14000513c
int64_t result; // 0x14000513c
if (g72 != 0) {
// 0x1400051f1
return result;
}
int32_t v1 = a1;
*(int32_t *)&g70 = 1;
int32_t v2; // 0x14000513c
int64_t v3; // 0x14000513c
if (v1 != 0) {
// 0x14000519a
v3 = &g82;
v2 = v1;
if (v1 != 1) {
goto lab_0x1400051ac;
} else {
goto lab_0x1400051a6;
}
} else {
// 0x140005166
v3 = &g81;
if (g29 != (int64_t)g71) {
// 0x14000517e
function_1400124a0(0, 0, 0);
v3 = &g81;
}
goto lab_0x1400051a6;
}
lab_0x1400051ac:
// 0x1400051ac
if (v2 == 0) {
// 0x1400051b4
_initterm((void (**)())&g5, (void (**)())&g6);
}
// 0x1400051c7
_initterm((void (**)())&g7, (void (**)())&g8);
int64_t v4 = *(int64_t *)(a1 + 8); // 0x1400051da
result = v4;
if (*(int32_t *)v4 == 0) {
// 0x1400051e3
g72 = 1;
int64_t v5 = *(int64_t *)(a1 + 16); // 0x1400051ea
*(char *)v5 = 1;
result = v5;
}
// 0x1400051f1
return result;
lab_0x1400051a6:
// 0x1400051a6
function_140005908((int64_t *)v3);
v2 = v3;
goto lab_0x1400051ac;
}
// Address range: 0x1400051f7 - 0x14000520c
int64_t function_1400051f7(int64_t a1) {
// 0x1400051f7
int64_t v1; // 0x1400051f7
int64_t v2; // 0x1400051f7
terminate(a1, v2, v1);
__asm_int3();
__asm_int3();
__asm_int3();
return (bool)((int32_t)a1 == -0x1f928c9d);
}
// Address range: 0x140005370 - 0x140005378
int64_t function_140005370(int64_t a1) {
// 0x140005370
g71 = a1;
int64_t result; // 0x140005370
return result;
}
// Address range: 0x140005378 - 0x140005388
void function_140005378(int32_t a1, int64_t a2, int64_t a3) {
// 0x140005378
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z(a1, a2, a3);
}
// Address range: 0x140005388 - 0x140005395
void function_140005388(int32_t a1, int64_t a2, int64_t a3) {
// 0x140005388
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z(a1, a2, a3);
}
// Address range: 0x140005398 - 0x1400053a4
void function_140005398(int32_t a1, int64_t a2, int64_t a3) {
// 0x140005398
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z(a1, a2, a3);
}
// Address range: 0x1400053a4 - 0x1400053e0
int64_t function_1400053a4(uint64_t a1) {
int64_t result = g29 & 63; // 0x1400053ba
int64_t v1 = 64 - result; // 0x1400053bd
if (g29 != (int64_t)g71) {
// 0x1400053da
terminate(v1, a1, g29);
return __asm_int3();
}
uint64_t v2 = v1 & 63; // 0x1400053c8
int64_t v3 = a1; // 0x1400053c8
if (v2 != 0) {
v3 = a1 << 64 - v2 | a1 >> v2;
}
g71 = v3 ^ g29;
return result;
}
// Address range: 0x1400053e0 - 0x1400053ea
void function_1400053e0(int32_t a1, int64_t a2, int64_t a3) {
// 0x1400053e0
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z(a1, a2, a3);
}
// Address range: 0x140005454 - 0x14000545c
int64_t function_140005454(void) {
// 0x140005454
return &g74;
}
// Address range: 0x14000545c - 0x140005464
int64_t function_14000545c(void) {
// 0x14000545c
return &g75;
}
// Address range: 0x140005464 - 0x1400054d2
int64_t function_140005464(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t a5, int64_t a6) {
int64_t v1 = (int64_t)a2;
__acrt_lock((int32_t)v1);
if ((int64_t)&g90 == (int64_t)&g91) {
// 0x1400054bb
int64_t v2; // 0x140005464
return __acrt_lock2((int32_t)v2, v1);
}
int64_t v3 = &g90;
int64_t * v4 = (int64_t *)v3; // 0x1400054a2
int64_t v5 = v1; // 0x1400054a5
if (*v4 != (int64_t)&g37) {
// 0x1400054a7
*v4 = function_14000b6b0(v3, (int64_t)&g37);
v5 = (int64_t)&g37;
}
int64_t v6 = v5;
int64_t v7 = v3 + 8; // 0x1400054b5
while (v7 != (int64_t)&g91) {
// 0x1400054a2
v3 = v7;
v4 = (int64_t *)v3;
v5 = v6;
if (*v4 != (int64_t)&g37) {
// 0x1400054a7
*v4 = function_14000b6b0(v3, (int64_t)&g37);
v5 = (int64_t)&g37;
}
// 0x1400054b5
v6 = v5;
v7 = v3 + 8;
}
// 0x1400054bb
int64_t v8; // 0x140005464
return __acrt_lock2(*(int32_t *)&v8, v6);
}
// Address range: 0x1400054d4 - 0x1400054e0
int64_t function_1400054d4(void) {
uint32_t result = g78; // 0x1400054d9
g78 = 1;
return result;
}
// Address range: 0x1400054e0 - 0x14000550e
int64_t function_1400054e0(void) {
int64_t v1 = 4; // bp+16, 0x1400054f4
int64_t v2 = 4; // bp+24, 0x1400054fc
int64_t v3; // 0x1400054e0
return function_140005464(&v3, &v2, &v3, &v1, 4, 4);
}
// Address range: 0x14000557c - 0x140005583
int64_t function_14000557c(void) {
// 0x14000557c
return (uint32_t)g79;
}
// Address range: 0x1400055b0 - 0x1400055b8
int64_t function_1400055b0(void) {
// 0x1400055b0
return &g80;
}
// Address range: 0x1400055b8 - 0x1400055f3
int64_t function_1400055b8(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t a5, int64_t * a6, int64_t * a7) {
// 0x1400055b8
int64_t v1; // 0x1400055b8
__acrt_lock((int32_t)v1);
int64_t v2 = function_140005630((int64_t)a3); // 0x1400055d8
int64_t v3; // 0x1400055b8
__acrt_lock2((int32_t)v3, (int64_t)a2);
return v2 & 0xffffffff;
}
// Address range: 0x1400055f4 - 0x14000562f
int64_t function_1400055f4(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t * a5) {
// 0x1400055f4
int64_t v1; // 0x1400055f4
__acrt_lock((int32_t)v1);
int64_t v2 = function_1400057e0((int64_t)a3); // 0x140005614
int64_t v3; // 0x1400055f4
__acrt_lock2((int32_t)v3, (int64_t)a2);
return v2 & 0xffffffff;
}
// Address range: 0x140005630 - 0x1400057e0
int64_t function_140005630(int64_t a1) {
// 0x140005630
if (a1 == 0) {
// 0x1400057c7
return 0xffffffff;
}
int64_t * v1 = (int64_t *)(a1 + 8); // 0x140005663
int64_t v2 = g29 ^ a1; // 0x14000566a
int64_t v3 = *v1 ^ g29; // 0x14000566d
uint64_t v4 = g29 & 63; // 0x140005677
int64_t v5 = *(int64_t *)(a1 + 16) ^ g29; // 0x14000567a
int64_t v6 = v2; // 0x14000567d
int64_t v7 = v5; // 0x14000567d
int64_t v8 = v3; // 0x14000567d
if (v4 != 0) {
uint64_t v9 = 64 - v4;
v6 = v2 << v9 | v2 >> v4;
v7 = v5 >> v4 | v5 << v9;
v8 = v3 >> v4 | v3 << v9;
}
int64_t v10 = v7; // 0x140005689
int64_t v11 = v6; // 0x140005689
int64_t v12 = v8; // 0x140005689
int64_t v13 = g29; // 0x140005689
int64_t v14; // 0x140005630
int64_t v15; // 0x140005630
int64_t v16; // 0x14000568f
uint64_t v17; // 0x140005697
if (v8 != v7) {
goto lab_0x140005736;
} else {
// 0x14000568f
v16 = v7 - v6;
v17 = v16 / 8;
int64_t v18 = (v17 < 512 ? v17 : 512) + v17; // 0x1400056a8
int64_t v19 = v18 == 0 ? 32 : v18; // 0x1400056ab
if (v19 < v17) {
goto lab_0x1400056d2;
} else {
int64_t v20 = function_14000b718(v6, v19, 8); // 0x1400056be
_free_base(NULL);
v15 = v19;
v14 = v20;
if (v20 != 0) {
goto lab_0x1400056fa;
} else {
goto lab_0x1400056d2;
}
}
}
lab_0x140005736:;
int64_t v21 = v11;
int64_t v22 = v10;
uint64_t v23 = *(int64_t *)*v1; // 0x14000574f
uint64_t v24 = -v13 & 63; // 0x140005755
int64_t v25 = v23; // 0x140005755
if (v24 != 0) {
v25 = v23 >> v24 | v23 << 64 - v24;
}
*(int64_t *)v12 = v25 ^ v13;
uint32_t v26 = 64 - ((int32_t)g29 & 63); // 0x14000576a
uint32_t v27 = v26 & 63;
int64_t v28 = v21; // 0x140005771
if (v27 != 0) {
uint64_t v29 = (int64_t)v27; // 0x140005771
v28 = v21 << 64 - v29 | v21 >> v29;
}
int64_t v30 = v12 + 8; // 0x14000573c
*(int64_t *)(int64_t)v26 = v28 ^ g29;
int32_t v31 = 64 - ((int32_t)g29 & 63); // 0x14000578c
uint32_t v32 = v31 & 63;
int64_t v33 = v30; // 0x140005791
if (v32 != 0) {
uint64_t v34 = (int64_t)v32; // 0x140005791
v33 = v30 << 64 - v34 | v30 >> v34;
}
*(int64_t *)(int64_t)(v31 + 8) = v33 ^ g29;
int32_t v35 = 64 - ((int32_t)g29 & 63); // 0x1400057aa
uint32_t v36 = v35 & 63;
int64_t v37 = v22; // 0x1400057b3
if (v36 != 0) {
uint64_t v38 = (int64_t)v36; // 0x1400057b3
v37 = v22 << 64 - v38 | v22 >> v38;
}
*(int64_t *)(int64_t)(v35 + 16) = v37 ^ g29;
// 0x1400057c7
return 0;
lab_0x1400056d2:;
int64_t v39 = v17 + 4; // 0x1400056d2
int64_t v40 = function_14000b718(v6, v39, 8); // 0x1400056e2
_free_base(NULL);
v15 = v39;
v14 = v40;
if (v40 == 0) {
// 0x1400057c7
return 0xffffffff;
}
goto lab_0x1400056fa;
lab_0x1400056fa:;
int64_t v41 = v14 + (v16 & -8); // 0x140005701
int64_t v42 = v14 + 8 * v15; // 0x140005705
uint64_t v43 = 7 - v41 + v42; // 0x140005712
v10 = v42;
v11 = v14;
v12 = v41;
v13 = g29;
if (v42 >= v41 && v43 >= 8) {
// 0x140005726
__asm_rep_stosq_memset((char *)v41, g29, v43 / 8);
v10 = v42;
v11 = v14;
v12 = v41;
v13 = g29;
}
goto lab_0x140005736;
}
// Address range: 0x1400057e0 - 0x1400058f6
int64_t function_1400057e0(int64_t a1) {
// 0x1400057e0
if (a1 == 0) {
// 0x1400058dd
return 0xffffffff;
}
int64_t v1 = g29 & -0x100000000; // 0x14000581b
uint64_t v2 = g29 & 63; // 0x14000581e
int64_t v3 = *(int64_t *)(a1 + 8); // 0x140005821
int64_t v4; // 0x1400057e0
int64_t v5; // 0x1400057e0
if (v2 == 0) {
// .thread
v5 = v1;
v4 = v3 ^ g29;
} else {
uint64_t v6 = 64 - v2;
uint64_t v7 = v3 ^ g29; // 0x140005828
v5 = v1 << v6 | v1 >> v2;
v4 = v7 >> v2 | v7 << v6;
}
int64_t v8 = v2; // 0x140005836
int64_t v9 = v4; // 0x140005836
int64_t v10 = v4; // 0x140005836
int64_t v11 = v5; // 0x140005836
if (v5 >= 0xffffffffffffffff) {
// 0x1400058dd
return 0;
}
int64_t v12 = v5; // 0x140005836
int64_t v13; // 0x1400057e0
int64_t v14; // 0x1400057e0
while (true) {
int64_t v15 = v12;
v14 = v11;
int64_t v16 = v10;
v13 = v8;
int64_t v17 = v9 - 8; // 0x14000584b
if (v17 < v14) {
// break (via goto) -> 0x1400058a9
goto lab_0x1400058a9;
}
int64_t * v18 = (int64_t *)v17;
int64_t v19 = v17; // 0x14000585a
while (*v18 == g29) {
// 0x14000584b
v17 = v19 - 8;
if (v17 < v14) {
// break (via goto) -> 0x1400058a9
goto lab_0x1400058a9;
}
// 0x140005854
v18 = (int64_t *)v17;
v19 = v17;
}
// 0x14000585c
*v18 = g29;
int64_t v20; // 0x1400057e0
function_1400124a0((int32_t)v13, v20, (int32_t)g29);
v8 = g29 & 63;
int64_t v21 = g29 & -64; // 0x140005885
int64_t v22 = *(int64_t *)(v8 + 8) ^ g29; // 0x140005888
int64_t v23 = v21; // 0x14000588b
int64_t v24 = v22; // 0x14000588b
if (v8 != 0) {
uint64_t v25 = 64 - v8;
v23 = v21 << v25 | v21 >> v8;
v24 = v22 >> v8 | v22 << v25;
}
int64_t v26 = v24;
int64_t v27 = v23;
v9 = v27 == v15 == v26 == v16 ? v17 : v26;
v10 = v27 == v15 == v26 == v16 ? v16 : v26;
v11 = v27 == v15 == v26 == v16 ? v14 : v27;
v12 = v27 == v15 == v26 == v16 ? v15 : v27;
v20 = v8;
}
lab_0x1400058a9:;
int64_t * v28; // 0x1400057e0
int64_t v29; // 0x1400057e0
int64_t v30; // 0x1400057e0
if (v14 == -1) {
// 0x1400058a9
v28 = (int64_t *)v13;
v30 = v13;
v29 = g29;
} else {
int64_t * v31 = (int64_t *)v14;
_free_base(v31);
v28 = v31;
v30 = v14;
v29 = g29;
}
// 0x1400058be
*v28 = v29;
*(int64_t *)(v30 + 8) = v29;
*(int64_t *)(v30 + 16) = v29;
// 0x1400058dd
return 0;
}
// Address range: 0x1400058f8 - 0x140005907
int64_t function_1400058f8(int64_t a1) {
// 0x1400058f8
return function_14000596c(&g81, a1);
}
// Address range: 0x140005908 - 0x140005942
int64_t function_140005908(int64_t * a1) {
int64_t v1 = (int64_t)a1; // 0x14000590b
int64_t v2 = &v1; // bp-24, 0x140005917
int64_t v3 = 2; // bp+24, 0x14000592c
int64_t v4 = 2; // bp+32, 0x140005934
int64_t v5; // bp+16, 0x140005908
return function_1400055f4(&v5, &v4, &v2, &v3, &v1);
}
// Address range: 0x140005944 - 0x14000596b
int64_t function_140005944(int64_t * a1) {
// 0x140005944
if (a1 == NULL) {
// 0x140005949
return 0xffffffff;
}
int64_t v1 = (int64_t)a1;
int64_t * v2 = (int64_t *)(v1 + 16); // 0x14000594d
if (*v2 == v1) {
// 0x140005956
*a1 = g29;
*(int64_t *)(v1 + 8) = g29;
*v2 = g29;
}
// 0x140005949
return 0;
}
// Address range: 0x14000596c - 0x1400059b4
int64_t function_14000596c(int64_t * a1, int64_t a2) {
int64_t v1 = a2; // bp+16, 0x14000596c
int64_t v2 = (int64_t)a1; // 0x140005971
int64_t v3 = &v2; // bp-32, 0x140005982
int64_t v4 = 2; // bp+32, 0x1400059a3
int64_t v5 = 2; // bp-40, 0x1400059a6
int64_t v6; // bp+24, 0x14000596c
int64_t result = function_1400055b8(&v6, &v5, &v3, &v4, 2, &v2, &v1); // 0x1400059a9
return result;
}
// Address range: 0x1400059ec - 0x1400059fc
int64_t function_1400059ec(void) {
// 0x1400059ec
return __dcrt_uninitialize_environments_nolock() & -256 | 1;
}
// Address range: 0x1400059fc - 0x140005a39
int64_t function_1400059fc(void) {
// 0x1400059fc
function_1400061b8(g29);
function_14000b894(g29);
__acrt_initialize_signal_handlers(g29);
function_1400048c8(g29);
return function_140005370(g29) & -256 | 1;
}
// Address range: 0x140005a3c - 0x140005a43
int64_t function_140005a3c(int64_t a1) {
// 0x140005a3c
return function_140001d60(0);
}
// Address range: 0x140005a44 - 0x140005a84
int64_t function_140005a44(void) {
int32_t * v1 = (int32_t *)g93; // 0x140005a54
uint32_t v2 = *v1; // 0x140005a54
*v1 = v2 - 1;
int64_t v3 = v2; // 0x140005a54
if (v2 != 1) {
// 0x140005a7c
return v3 & -256 | 1;
}
int64_t v4 = v3; // 0x140005a6e
if (g93 != (int64_t)&g39) {
// 0x140005a70
_free_base((int64_t *)g93);
g93 = &g39;
v4 = &g113;
}
// 0x140005a7c
return v4 & -256 | 1;
}
// Address range: 0x140005a84 - 0x140005adf
int64_t function_140005a84(void) {
// 0x140005a84
_free_base((int64_t *)g88);
g88 = 0;
_free_base((int64_t *)g89);
g89 = 0;
_free_base((int64_t *)g75);
g75 = 0;
_free_base((int64_t *)g76);
g76 = 0;
return (int64_t)&g113 & -256 | 1;
}
// Address range: 0x140005ae0 - 0x140005af3
int64_t function_140005ae0(void) {
// 0x140005ae0
return function_14000b7d8(&g18, (int64_t *)&g19);
}
// Address range: 0x140005af4 - 0x140005b29
int64_t function_140005af4(int64_t a1) {
if ((char)a1 == 0) {
// 0x140005b12
return function_14000b858(&g18, (int64_t *)&g19);
}
// 0x140005afc
int64_t v1; // 0x140005af4
if (g61 != 0) {
// 0x140005b06
v1 = function_140006e34(a1);
}
// 0x140005b0b
return v1 & -256 | 1;
}
// Address range: 0x140005bc0 - 0x140005c1d
int64_t function_140005bc0(void) {
// 0x140005bc0
if (function_14000b948() != 0) {
// 0x140005bce
function_14000b998(22);
}
// 0x140005bd8
int64_t v1; // 0x140005bc0
if ((g34 & 2) != 0) {
// 0x140005be1
if (IsProcessorFeaturePresent(23)) {
// 0x140005bf0
__asm_int(41);
}
// 0x140005bf7
__acrt_call_reportfault(3, 0x40000015, 1);
v1 = 0x40000015;
}
// 0x140005c0b
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z((int32_t)&g113, (int64_t)&g113, (int64_t)&g113);
__asm_int3();
__asm_int3();
__asm_int3();
return (int64_t)_calloc_base(3, (int32_t)v1);
}
// Address range: 0x140005c20 - 0x140005f22
int64_t function_140005c20(int32_t a1, int64_t * a2, int64_t a3, int64_t a4) {
int64_t v1 = (int64_t)a2;
int64_t v2 = a1;
int64_t v3; // 0x140005c20
int32_t v4; // 0x140005c20
char v5; // 0x140005c20
int64_t v6; // 0x140005c20
int64_t v7; // bp-48, 0x140005c20
int64_t v8; // bp-56, 0x140005c20
int32_t v9; // 0x140005c62
int64_t v10; // 0x140005c41
if (a2 != NULL) {
// 0x140005c62
v9 = a3;
if (v9 == 0 || v9 < 37) {
// 0x140005c70
function_14000331c(&v8, v2);
int64_t v11 = v1 & 255;
*a2 = v2 + 1;
int64_t v12 = function_140005f24(v11, 8, &v7); // 0x140005ca6
v5 = v1;
int64_t v13 = v11; // 0x140005cad
if ((int32_t)v12 != 0) {
*a2 = 9;
int64_t v14 = function_140005f24(8, 8, &v7); // 0x140005ca6
v5 = 8;
v13 = 8;
while ((int32_t)v14 != 0) {
// 0x140005c90
*a2 = 9;
v14 = function_140005f24(8, 8, &v7);
v5 = 8;
v13 = 8;
}
}
// 0x140005caf
v6 = v13;
if ((v5 - 43 & -3) == 0) {
// 0x140005cc2
*a2 = 9;
v6 = 8;
}
// 0x140005cce
v10 = a3 & 0xffffffff;
v3 = v10;
if ((a3 & 0xffffffef) != 0) {
goto lab_0x140005d78;
} else {
char v15 = v6;
if (v15 < 58) {
// 0x140005ce6
v4 = 0x1000000 * (int32_t)v6 / 0x1000000 - 48;
goto lab_0x140005d12;
} else {
if (v15 < 123) {
// 0x140005cf6
v4 = 0x1000000 * (int32_t)v6 / 0x1000000 - 87;
goto lab_0x140005d12;
} else {
if (v15 < 91) {
// 0x140005d06
v4 = 0x1000000 * (int32_t)v6 / 0x1000000 - 55;
goto lab_0x140005d12;
} else {
// 0x140005d6e
v3 = v9 != 0 ? v10 : 10;
goto lab_0x140005d78;
}
}
}
}
} else {
goto lab_0x140005c4d;
}
} else {
goto lab_0x140005c4d;
}
lab_0x140005dde:;
// 0x140005dde
int64_t v16; // 0x140005c20
*a2 = v16 + 1;
int64_t v17; // 0x140005c20
int64_t v18; // 0x140005c20
int64_t v19 = v18 | v17 & 0xfffffff7; // 0x140005dec
int64_t v20; // 0x140005c20
int64_t v21 = v20; // 0x140005dec
uint32_t v22; // 0x140005c20
int64_t v23 = v22 & 255; // 0x140005dec
goto lab_0x140005d83;
lab_0x140005c4d:
// 0x140005c4d
*_errno() = 22;
function_140006270(v2, v1, a3, a4);
int64_t v37 = v1; // 0x140005c5d
goto lab_0x140005e2d;
lab_0x140005e2d:;
int64_t v38 = *(int64_t *)(v1 + 8); // 0x140005e2d
if (v38 != 0) {
// 0x140005e36
*(int64_t *)v38 = v37;
}
// 0x140005f03
return 0;
lab_0x140005d78:;
int64_t v39 = a4 & 255; // 0x140005c44
uint32_t v33 = (int32_t)v3;
uint32_t v35 = 0xffffffff / v33;
v22 = 0xffffffff % v33;
v16 = v22;
int64_t v36 = 0x100000000 * v3 / 0x100000000;
v19 = v5 != 45 ? v39 : v39 | 2;
v21 = 0;
v23 = v6;
int64_t v29; // 0x140005c20
int64_t v32; // 0x140005c20
int64_t v30; // 0x140005c20
int64_t v25; // 0x140005c20
char v26; // 0x140005c20
while (true) {
lab_0x140005d83:;
int64_t v24 = v23;
v25 = v21;
v17 = v19;
v26 = v24;
int32_t v27; // 0x140005c20
if (v26 < 58) {
// 0x140005d8b
v27 = 0x1000000 * (int32_t)v24 / 0x1000000 - 48;
} else {
if (v26 < 123) {
// 0x140005d9b
v27 = 0x1000000 * (int32_t)v24 / 0x1000000 - 87;
} else {
if (v26 >= 91) {
int64_t v28 = v16 - 1; // 0x140005df1
*a2 = v28;
v29 = v28;
v30 = 0xffffffff;
if (v26 == 0) {
goto lab_0x140005e11;
} else {
goto lab_0x140005dfc;
}
}
// 0x140005dab
v27 = 0x1000000 * (int32_t)v24 / 0x1000000 - 55;
}
}
uint32_t v31 = v27;
v32 = v31;
if (v31 == -1 || v31 >= v33) {
// break -> 0x140005dee
break;
}
uint32_t v34 = (int32_t)v25; // 0x140005dc1
if (v35 > v34) {
// 0x140005dd3
v20 = 0x100000000 * v25 / 0x100000000 * v36 + v32 & 0xffffffff;
v18 = 8;
goto lab_0x140005dde;
} else {
// 0x140005dc6
v20 = v25;
v18 = 12;
if (v35 != v34 || v31 > v22) {
goto lab_0x140005dde;
} else {
// 0x140005dd3
v20 = 0x100000000 * v25 / 0x100000000 * v36 + v32 & 0xffffffff;
v18 = 8;
goto lab_0x140005dde;
}
}
}
int64_t v40 = v16 - 1; // 0x140005df1
*a2 = v40;
v29 = v40;
v30 = v32;
goto lab_0x140005dfc;
lab_0x140005dfc:
// 0x140005dfc
if (*(char *)v29 != v26) {
// 0x140005e01
*_errno() = 22;
function_140006270(v30, v16, (int64_t)v35, a4);
}
goto lab_0x140005e11;
lab_0x140005e11:;
int64_t v41; // 0x140005c20
int64_t v42; // 0x140005e4b
char v43; // 0x140005c20
if ((v17 & 8) != 0) {
// 0x140005e43
v42 = v17 & 1;
if ((v17 & 4) != 0) {
goto lab_0x140005e69;
} else {
if (v42 == 0) {
// 0x140005ea9
v41 = v25;
if ((v17 & 2) == 0) {
goto lab_0x140005e7e;
} else {
// 0x140005eaf
v41 = -v25 & 0xffffffff;
goto lab_0x140005e7e;
}
} else {
int32_t v44 = v25;
if ((v17 & 2) == 0) {
// 0x140005ea4
v41 = v25;
if (v44 < 0) {
goto lab_0x140005e69;
} else {
goto lab_0x140005e7e;
}
} else {
if (v44 > 0x80000000) {
goto lab_0x140005e69;
} else {
// 0x140005eaf
v41 = -v25 & 0xffffffff;
goto lab_0x140005e7e;
}
}
}
}
} else {
// 0x140005e17
*a2 = v2;
v37 = v16;
if (v43 != 0) {
int32_t * v45 = (int32_t *)(v8 + 936); // 0x140005e26
*v45 = *v45 & -3;
v37 = v16;
}
goto lab_0x140005e2d;
}
lab_0x140005d12:
// 0x140005d12
if (v4 == 0) {
// 0x140005d49
*a2 = 8;
int64_t v46 = v9 != 0 ? v10 : 8; // 0x140005d42
v3 = v46;
if (*(char *)8 != 8) {
// 0x140005d4d
*_errno() = 22;
function_140006270(8, 8, (int64_t)&v7, a4);
v3 = v46;
}
goto lab_0x140005d78;
} else {
// 0x140005d6e
v3 = v9 != 0 ? v10 : 10;
goto lab_0x140005d78;
}
lab_0x140005e69:
// 0x140005e69
*_errno() = 34;
v41 = 0xffffffff;
if (v42 == 0) {
goto lab_0x140005e7e;
lab_0x140005e7e:
// 0x140005e7e
if (v43 != 0) {
int32_t * v47 = (int32_t *)(v8 + 936); // 0x140005e8a
*v47 = *v47 & -3;
}
int64_t v48 = *(int64_t *)(v1 + 8); // 0x140005e91
if (v48 != 0) {
// 0x140005e9a
*(int64_t *)v48 = v16;
}
// 0x140005f03
return v41 & 0xffffffff;
}
int64_t result; // 0x140005c20
if ((v17 & 2) == 0) {
if (v43 != 0) {
int32_t * v49 = (int32_t *)(v8 + 936); // 0x140005eea
*v49 = *v49 & -3;
}
int64_t v50 = *(int64_t *)(v1 + 8); // 0x140005ef1
result = 0x7fffffff;
if (v50 != 0) {
// 0x140005efa
*(int64_t *)v50 = v50;
result = 0x7fffffff;
}
} else {
if (v43 != 0) {
int32_t * v51 = (int32_t *)(v8 + 936); // 0x140005ec3
*v51 = *v51 & -3;
}
int64_t v52 = *(int64_t *)(v1 + 8); // 0x140005eca
result = 0x80000000;
if (v52 != 0) {
// 0x140005ed3
*(int64_t *)v52 = v52;
result = 0x80000000;
}
}
// 0x140005f03
return result;
}
// Address range: 0x140005f24 - 0x140005f9a
int64_t function_140005f24(int64_t a1, int64_t a2, int64_t * a3) {
int64_t v1 = 0x100000000 * a1;
int64_t v2 = v1 / 0x100000000; // 0x140005f38
int64_t v3 = v2 + 1; // 0x140005f3f
int64_t result; // 0x140005f24
if (a3 == NULL) {
int16_t * v4 = __pctype_func(); // 0x140005f70
result = 0;
if ((int32_t)v3 < 257) {
uint16_t v5 = *(int16_t *)(v1 / 0x80000000 + (int64_t)v4); // 0x140005f7d
result = (int64_t)v5 & a2;
}
// 0x140005f85
return result;
}
int64_t v6 = (int64_t)a3;
if ((int32_t)v3 < 257) {
// 0x140005f85
return (int64_t)*(int16_t *)(v1 / 0x80000000 + v6) & a2;
}
// 0x140005f5d
result = 0;
if (*(int32_t *)(v6 + 8) >= 2) {
// 0x140005f63
result = function_14000bc04(v2 & 0xffffffff, a2, v6);
}
// 0x140005f85
return result;
}
// Address range: 0x140005fb0 - 0x14000602d
int64_t function_140005fb0(int64_t a1, int64_t a2, int64_t a3) {
if (a3 == 0) {
// 0x140006022
return 0;
}
int64_t v1 = a2 - a1; // 0x140005fb0
int64_t v2 = a1; // 0x140005fbe
int64_t v3 = a3; // 0x140005fbe
int64_t v4 = a1; // 0x140005fbe
int64_t v5 = a3; // 0x140005fbe
if ((a1 & 7) == 0) {
lab_0x140005fdd:;
int64_t v6 = v5;
int64_t v7 = v4;
int64_t v8 = v7 + v1; // 0x140005ff1
v2 = v7;
v3 = v6;
while ((v8 & 4095) < 4089) {
int64_t v9 = *(int64_t *)v7; // 0x140006000
v2 = v7;
v3 = v6;
if (v9 != *(int64_t *)v8) {
// break -> 0x140005fc0
break;
}
int64_t v10 = v6 - 8; // 0x14000600d
if (v6 < 8 || v10 == 0) {
// 0x140006022
return 0;
}
// 0x140006013
if (((v9 & -0x7f7f7f7f7f7f7f80 ^ -0x7f7f7f7f7f7f7f80) & v9 - 0x101010101010101) != 0) {
// 0x140006022
return 0;
}
v6 = v10;
v7 += 8;
v8 = v7 + v1;
v2 = v7;
v3 = v6;
}
}
int64_t v11 = v2; // 0x140005fc8
int64_t v12 = v3; // 0x140005fcb
unsigned char v13 = *(char *)v11; // 0x140005fc0
unsigned char v14 = *(char *)(v11 + v1); // 0x140005fc3
while (v13 == v14) {
// 0x140005fc8
v12--;
if (v12 == 0 || v13 == 0) {
// 0x140006022
return 0;
}
// 0x140005fd4
v11++;
v4 = v11;
v5 = v12;
if ((v11 & 7) == 0) {
goto lab_0x140005fdd;
}
v13 = *(char *)v11;
v14 = *(char *)(v11 + v1);
}
// 0x140006025
return v13 < v14 ? -1 : 1;
}
// Address range: 0x1400061b8 - 0x1400061c0
int64_t function_1400061b8(int64_t a1) {
// 0x1400061b8
g83 = a1;
int64_t result; // 0x1400061b8
return result;
}
// Address range: 0x140006270 - 0x14000628e
int64_t function_140006270(int64_t a1, int64_t a2, int64_t a3, int64_t a4) {
// 0x140006270
_invalid_parameter(NULL, NULL, NULL, 0, 0);
return &g113;
}
// Address range: 0x140006290 - 0x1400062d7
int64_t function_140006290(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int64_t a5) {
// 0x140006290
if (IsProcessorFeaturePresent(23)) {
// 0x1400062a3
__asm_int(41);
}
// 0x1400062aa
__acrt_call_reportfault(2, 0xc0000417, 1);
return TerminateProcess(GetCurrentProcess(), -0x3ffffbe9);
}
// Address range: 0x1400062d8 - 0x14000631d
int64_t function_1400062d8(int64_t a1) {
int32_t v1 = a1;
int64_t v2 = (int64_t)&g19; // 0x1400062e4
int64_t v3 = 0;
while (*(int32_t *)v2 != v1) {
int64_t v4 = v3 + 1; // 0x1400062ec
v2 += 8;
if ((int32_t)v4 >= 45) {
if (v1 < 37) {
// 0x1400062fe
return 13;
}
// 0x140006304
return v1 < 203 ? 8 : 22;
}
v3 = v4 & 0xffffffff;
}
uint32_t result = *(int32_t *)(8 * v3 + (int64_t)&g19 + 4); // 0x140006317
return result;
}
// Address range: 0x140006468 - 0x14000663e
int64_t function_140006468(int64_t a1, int64_t lpProcName, int64_t a3, int64_t a4) {
int64_t * v1 = (int64_t *)((8 * a1 & 0x7fffffff8) + 0x14001dea0); // 0x140006497
int64_t v2 = g29 ^ *v1; // 0x1400064b0
uint64_t v3 = g29 & 63; // 0x1400064b3
int64_t v4 = v2; // 0x1400064b8
if (v3 != 0) {
v4 = v2 << 64 - v3 | v2 >> v3;
}
int64_t result = v4; // 0x1400065c0
int64_t v5; // 0x140006468
int64_t v6; // 0x140006468
int64_t * v7; // 0x140006468
int64_t hModule; // 0x140006468
int64_t * v8; // 0x140006468
switch (v4) {
case -1: {
return 0;
}
case 0: {
// 0x1400064d1
v6 = a3;
v5 = g29;
if (a3 == a4) {
goto lab_0x140006604;
} else {
while (true) {
lab_0x1400064da:;
int64_t v9 = 8 * (int64_t)*(int32_t *)v6; // 0x1400064dd
v8 = (int64_t *)(v9 + 0x14001de00);
int64_t v10 = *v8; // 0x1400064dd
hModule = v10;
switch (v10) {
case 0: {
int16_t * lpLibFileName = (int16_t *)*(int64_t *)(v9 + 0x1400149d0); // 0x14000650b
int64_t * v11 = LoadLibraryExW(lpLibFileName, NULL, 2048); // 0x14000650b
v7 = v11;
if (v11 != NULL) {
goto lab_0x140006568;
} else {
int32_t errorCode = GetLastError(); // 0x140006519
if (errorCode != 87) {
// 0x140006574
*v8 = -1;
goto lab_0x14000659f;
} else {
int32_t n = errorCode - 80; // 0x140006524
if (wcsncmp(lpLibFileName, L"api-ms-", n) == 0) {
// 0x140006574
*v8 = -1;
goto lab_0x14000659f;
} else {
// 0x14000653d
if (wcsncmp(lpLibFileName, L"ext-ms-", n) == 0) {
// 0x140006574
*v8 = -1;
goto lab_0x14000659f;
} else {
// 0x140006553
v7 = LoadLibraryExW(lpLibFileName, NULL, 0);
goto lab_0x140006568;
}
}
}
}
}
case -1: {
goto lab_0x14000659f;
}
default: {
goto lab_0x1400065ba;
}
}
}
}
}
default: {
return result;
}
}
lab_0x14000659f:;
int64_t v12 = v6 + 4; // 0x14000659f
v6 = v12;
if (v12 == a4) {
// 0x1400065ac
v5 = g29;
goto lab_0x140006604;
}
goto lab_0x1400064da;
lab_0x1400065ba:;
int32_t (*func)() = GetProcAddress((int64_t *)hModule, (char *)lpProcName); // 0x1400065c0
v5 = g29;
if (func != NULL) {
// 0x1400065cb
result = (int64_t)func;
uint64_t v13 = -g29 & 63; // 0x1400065e4
int64_t v14 = result; // 0x1400065e4
if (v13 != 0) {
v14 = result << 64 - v13 | result >> v13;
}
*v1 = v14 ^ g29;
// 0x140006621
return result;
}
goto lab_0x140006604;
lab_0x140006568:;
int64_t * hLibModule = v7;
if (hLibModule != NULL) {
int64_t v17 = (int64_t)hLibModule;
*v8 = v17;
hModule = v17;
if (*v8 == 0) {
goto lab_0x1400065ba;
} else {
// 0x140006591
FreeLibrary(hLibModule);
hModule = v17;
goto lab_0x1400065ba;
}
}
// 0x140006574
*v8 = -1;
goto lab_0x14000659f;
lab_0x140006604:;
uint64_t v15 = -v5 & 63; // 0x140006611
int64_t v16 = -1; // 0x140006611
if (v15 != 0) {
v16 = -1 << 64 - v15 | 0xffffffffffffffff >> v15;
}
*v1 = v16 ^ v5;
// 0x140006621
return 0;
}
// Address range: 0x140006a64 - 0x140006a95
int64_t function_140006a64(int64_t a1) {
// 0x140006a64
__asm_rep_stosq_memset((char *)&g84, g29, (int64_t)((int32_t)(-(int64_t)((int64_t)&g85 < (int64_t)&g84) ^ -1) & 34));
return g29 & -256 | 1;
}
// Address range: 0x140006adc - 0x140006b8d
int64_t function_140006adc(void) {
// 0x140006adc
__acrt_lock(8);
int64_t v1 = 3; // 0x140006b05
int64_t v2; // 0x140006adc
if (g60 == 3) {
// 0x140006b74
__acrt_lock2(8, v2);
return 0;
}
int32_t v3 = 0;
int64_t v4 = 0x100000000 * v1 / 0x20000000; // 0x140006b11
int64_t v5 = *(int64_t *)(g61 + v4); // 0x140006b11
int32_t v6 = g60; // 0x140006b18
int32_t v7 = v3; // 0x140006b18
int64_t v8; // 0x140006adc
int64_t v9; // 0x140006b31
if (v5 != 0) {
// 0x140006b1c
v8 = v5;
v7 = v3;
if ((*(int32_t *)(v5 + 20) & 0x2000) != 0) {
// 0x140006b26
v9 = function_14000be40(v5);
v8 = *(int64_t *)(g61 + v4);
v7 = v3 + (int32_t)((int32_t)v9 != -1);
}
// 0x140006b3f
DeleteCriticalSection((struct _RTL_CRITICAL_SECTION *)(v8 + 48));
_free_base((int64_t *)*(int64_t *)(g61 + v4));
*(int64_t *)(g61 + v4) = 0;
v6 = g60;
}
int32_t v10 = v7;
int64_t v11 = v1 + 1; // 0x140006b70
v1 = v11 & 0xffffffff;
int32_t result = v10; // 0x140006b05
while (v6 != (int32_t)v11) {
// 0x140006b07
v3 = v10;
v4 = 0x100000000 * v1 / 0x20000000;
v5 = *(int64_t *)(g61 + v4);
int32_t v12 = v3; // 0x140006b18
if (v5 != 0) {
// 0x140006b1c
v8 = v5;
v7 = v3;
if ((*(int32_t *)(v5 + 20) & 0x2000) != 0) {
// 0x140006b26
v9 = function_14000be40(v5);
v8 = *(int64_t *)(g61 + v4);
v7 = v3 + (int32_t)((int32_t)v9 != -1);
}
// 0x140006b3f
DeleteCriticalSection((struct _RTL_CRITICAL_SECTION *)(v8 + 48));
_free_base((int64_t *)*(int64_t *)(g61 + v4));
*(int64_t *)(g61 + v4) = 0;
v6 = g60;
v12 = v7;
}
// 0x140006b70
v10 = v12;
v11 = v1 + 1;
v1 = v11 & 0xffffffff;
result = v10;
}
// 0x140006b74
__acrt_lock2(8, v2);
return result;
}
// Address range: 0x140006b90 - 0x140006c2a
int64_t function_140006b90(int64_t * a1, int64_t * lpCriticalSection, int64_t * a3, int64_t * lpCriticalSection2, int64_t a5, int64_t a6, int64_t a7, int64_t a8, int64_t * a9, int64_t a10, int64_t a11, int64_t a12) {
// 0x140006b90
EnterCriticalSection((struct _RTL_CRITICAL_SECTION *)lpCriticalSection);
if (a3 == NULL) {
// 0x140006c17
LeaveCriticalSection((struct _RTL_CRITICAL_SECTION *)lpCriticalSection2);
return &g113;
}
int64_t v1 = (int64_t)a3;
uint32_t v2 = *(int32_t *)(v1 + 20); // 0x140006bbd
if ((v2 & 0x2000) == 0) {
// 0x140006c17
LeaveCriticalSection((struct _RTL_CRITICAL_SECTION *)lpCriticalSection2);
return &g113;
}
int64_t * v3 = (int64_t *)(v1 + 8); // 0x140006bae
int64_t v4 = v2; // 0x140006bbd
if ((v4 & 3) != 2) {
goto lab_0x140006bd6;
} else {
if ((v4 & 192) != 0) {
goto lab_0x140006be0;
} else {
goto lab_0x140006bd6;
}
}
lab_0x140006bd6:
if ((v4 & 2048) == 0) {
int32_t * v5 = (int32_t *)*v3; // 0x140006bdc
*v5 = *v5 + 1;
// 0x140006c17
LeaveCriticalSection((struct _RTL_CRITICAL_SECTION *)lpCriticalSection2);
return &g113;
}
goto lab_0x140006be0;
lab_0x140006be0:
// 0x140006be0
if ((v2 & 2) == 0 == *(char *)*(int64_t *)(v1 + 16) == 0) {
// 0x140006c17
LeaveCriticalSection((struct _RTL_CRITICAL_SECTION *)lpCriticalSection2);
return &g113;
}
// 0x140006bf8
if ((int32_t)function_140006de8(v1) == -1) {
// 0x140006c10
*(int32_t *)*(int64_t *)(v1 + 24) = -1;
} else {
int32_t * v6 = (int32_t *)*v3; // 0x140006c0c
*v6 = *v6 + 1;
}
// 0x140006c17
LeaveCriticalSection((struct _RTL_CRITICAL_SECTION *)lpCriticalSection2);
return &g113;
}
// Address range: 0x140006c2c - 0x140006d0c
int64_t function_140006c2c(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t a5, int64_t a6, int32_t * a7, char * a8, int32_t * a9, int64_t a10) {
int64_t v1 = (int64_t)a2;
__acrt_lock((int32_t)v1);
if (g60 == 0) {
// 0x140006cf4
int64_t v2; // 0x140006c2c
return __acrt_lock2((int32_t)v2, v1);
}
int64_t v3 = (int64_t)a3;
int64_t v4; // bp-88, 0x140006c2c
int64_t v5 = &v4;
int64_t v6; // bp-56, 0x140006c2c
int64_t v7 = &v6;
int64_t v8; // bp-72, 0x140006c2c
int64_t v9 = &v8;
int64_t v10 = v3; // 0x140006c2c
int64_t v11 = g61; // 0x140006c9d
int64_t v12; // 0x140006c2c
int64_t v13; // 0x140006c2c
int64_t v14; // 0x140006c2c
int64_t v15; // 0x140006c6c
int64_t v16; // 0x140006c7c
while (true) {
lab_0x140006c6c:
// 0x140006c6c
v13 = v11;
v12 = v10;
v15 = *(int64_t *)v13;
v4 = v15;
v14 = v12;
v10 = v12;
if (v15 == 0) {
goto lab_0x140006c9d;
} else {
uint32_t v17 = *(int32_t *)(v15 + 20); // 0x140006c7c
v14 = v12;
v10 = v12;
if ((v17 & 0x2000) == 0) {
goto lab_0x140006c9d;
} else {
// 0x140006c88
v16 = v17;
if ((v16 & 3) != 2) {
goto lab_0x140006c95;
} else {
if ((v16 & 192) != 0) {
goto lab_0x140006ca3;
} else {
goto lab_0x140006c95;
}
}
}
}
}
lab_0x140006c5e:;
// 0x140006cf4
int64_t v18; // 0x140006c2c
return __acrt_lock2(*(int32_t *)&v18, v14);
lab_0x140006c9d:
// 0x140006c9d
v11 = v13 + 8;
if (v11 == 8 * (int64_t)g60 + g61) {
// break -> 0x140006c5e
goto lab_0x140006c5e;
}
goto lab_0x140006c6c;
lab_0x140006c95:
if ((v16 & 2048) == 0) {
// 0x140006c9b
*(int32_t *)v12 = (int32_t)v12 + 1;
v14 = v12;
v10 = v12;
goto lab_0x140006c9d;
} else {
goto lab_0x140006ca3;
}
lab_0x140006ca3:;
int64_t v19 = *(int64_t *)(v3 + 16); // 0x140006ca3
int64_t v20 = *(int64_t *)(v3 + 8); // 0x140006ca7
v6 = v5;
int64_t v21 = v15; // bp-80, 0x140006ccc
v8 = v15;
int64_t v22; // bp+16, 0x140006c2c
function_140006b90(&v22, &v8, &v6, &v21, v15, v15, v15, v13, &v4, v12, v20, v19);
v14 = v9;
v10 = v7;
goto lab_0x140006c9d;
}
// Address range: 0x140006d0c - 0x140006d69
int64_t function_140006d0c(int64_t a1) {
int64_t v1 = 0x100000000000000 * a1 / 0x100000000000000; // 0x140006d0c
int32_t v2 = 0; // bp+32, 0x140006d18
int32_t v3 = 0; // bp+24, 0x140006d20
int32_t * v4 = &v2; // bp-32, 0x140006d28
int64_t v5 = 8; // bp-40, 0x140006d4d
int64_t v6 = 8; // bp-36, 0x140006d50
int64_t v7; // bp+16, 0x140006d0c
int64_t v8; // 0x140006d0c
function_140006c2c(&v7, &v6, (int64_t *)&v4, &v5, 8, 8, &v2, (char *)&v1, &v3, v8);
return (char)v1 != 0 ? v2 : v3;
}
// Address range: 0x140006d6c - 0x140006de6
int64_t function_140006d6c(int64_t a1) {
int32_t * v1 = (int32_t *)(a1 + 20); // 0x140006d7e
int32_t v2 = *v1; // 0x140006d7e
if ((v2 & 192) == 0 || (v2 & 3) != 2) {
// 0x140006dd6
return 0;
}
int64_t v3 = a1 + 8; // 0x140006d90
int32_t v4 = v2 - *(int32_t *)v3; // 0x140006d90
*(int32_t *)(a1 + 16) = 0;
int64_t v5 = *(int64_t *)v3; // 0x140006d97
*(int64_t *)a1 = v5;
if (v4 < 1) {
// 0x140006dd6
return 0;
}
int64_t v6 = function_14000c840((int64_t)_fileno((struct _IO_FILE *)a1), v5, (int64_t)v4); // 0x140006db2
int32_t v7 = *v1;
if (v4 != (int32_t)v6) {
// 0x140006dbb
*v1 = v7 | 16;
// 0x140006dd6
return 0xffffffff;
}
// 0x140006dc5
if ((v7 & 4) != 0) {
// 0x140006dcf
*v1 = v7 & -3;
}
// 0x140006dd6
return 0;
}
// Address range: 0x140006de8 - 0x140006e33
int64_t function_140006de8(int64_t a1) {
if (a1 == 0) {
// 0x140006df6
return function_140006d0c(a1);
}
// 0x140006e00
if ((int32_t)function_140006d6c(a1) == 0) {
// 0x140006e09
if ((*(int32_t *)(a1 + 20) & 2048) == 0) {
// 0x140006e2d
return 0;
}
uint32_t v1 = _fileno((struct _IO_FILE *)a1); // 0x140006e16
if ((int32_t)function_14000bf30((int64_t)v1) == 0) {
// 0x140006e2d
return 0;
}
}
// 0x140006e2d
return 0xffffffff;
}
// Address range: 0x140006e34 - 0x140006e3b
int64_t function_140006e34(int64_t a1) {
// 0x140006e34
return function_140006d0c(a1 & -256 | 1);
}
// Address range: 0x140006e3c - 0x140006e7c
int64_t function_140006e3c(int64_t a1) {
int32_t * v1 = (int32_t *)(a1 + 20); // 0x140006e42
uint32_t v2 = *v1; // 0x140006e42
if ((v2 & 0x2000) == 0) {
// 0x140006e76
return v2 / 0x2000;
}
int32_t result = v2 / 64; // 0x140006e57
if ((v2 & 64) != 0) {
int64_t * v3 = (int64_t *)(a1 + 8); // 0x140006e59
_free_base((int64_t *)*v3);
*v1 = *v1 & -321;
*v3 = (int64_t)((int32_t)&g113 ^ (int32_t)&g113);
*(int64_t *)a1 = (int64_t)((int32_t)&g113 ^ (int32_t)&g113);
*(int32_t *)(a1 + 16) = (int32_t)&g113 ^ (int32_t)&g113;
result = (int32_t)&g113 ^ (int32_t)&g113;
}
// 0x140006e76
return result;
}
// Address range: 0x140006e7c - 0x140006f69
int64_t function_140006e7c(void) {
// 0x140006e7c
int64_t lpStartupInfo; // bp-120, 0x140006e7c
GetStartupInfoW((struct _STARTUPINFOW *)&lpStartupInfo);
int16_t v1; // 0x140006e7c
if (v1 == 0) {
// 0x140006f4b
return &g113;
}
// 0x140006eb1
int32_t * v2; // 0x140006e7c
int64_t result = (int64_t)v2; // 0x140006eb1
if (v2 == NULL) {
// 0x140006f4b
return result;
}
uint32_t v3 = *v2;
int64_t v4 = v3 < 0x2000 == (0x1fff - v3 & v3) < 0 ? 0x2000 : (int64_t)v3; // 0x140006ed0
int64_t result2 = function_14000ac2c(v4); // 0x140006ed5
int32_t v5 = v4; // 0x140006eda
int32_t v6 = g86; // 0x140006eda
int32_t v7 = v5 - v6; // 0x140006eda
uint32_t v8 = v7 < 0 == ((v7 ^ v5) & (v6 ^ v5)) < 0 == (v7 != 0) ? v6 : v5; // 0x140006ee0
if (v8 == 0) {
// 0x140006f4b
return result2;
}
int64_t v9 = result + 4; // 0x140006ec2
int64_t v10 = result2; // 0x140006eeb
int64_t v11 = v9 + (int64_t)v3; // 0x140006eeb
int64_t v12 = 0; // 0x140006eeb
int64_t v13 = v9; // 0x140006eeb
int64_t v14 = v8; // 0x140006eeb
int64_t v15; // 0x140006e7c
int64_t v16; // 0x140006e7c
int64_t v17; // 0x140006e7c
int64_t v18; // 0x140006e7c
char * v19; // 0x140006efa
while (true) {
lab_0x140006eee:
// 0x140006eee
v18 = v13;
v17 = v12;
int64_t v20 = v10;
int64_t * v21 = (int64_t *)v11; // 0x140006eee
uint64_t hFile = *v21; // 0x140006eee
v16 = v20;
if (hFile > 0xfffffffffffffffd) {
goto lab_0x140006f3b;
} else {
// 0x140006efa
v19 = (char *)v18;
char v22 = *v19; // 0x140006efa
v16 = v20;
if ((v22 & 1) == 0) {
goto lab_0x140006f3b;
} else {
// 0x140006eff
v15 = hFile;
if ((v22 & 8) != 0) {
goto lab_0x140006f11;
} else {
// 0x140006f04
v16 = 0;
if (GetFileType((int64_t *)hFile) == 0) {
goto lab_0x140006f3b;
} else {
// 0x140006f04
v15 = *v21;
goto lab_0x140006f11;
}
}
}
}
}
lab_0x140006f4b:;
// 0x140006f4b
int64_t result3; // 0x140006e7c
return result3;
lab_0x140006f3b:
// 0x140006f3b
v10 = v16;
v14--;
v11 += 8;
v12 = v17 + 1;
v13 = v18 + 1;
result3 = v10;
if (v14 == 0) {
// break -> 0x140006f4b
goto lab_0x140006f4b;
}
goto lab_0x140006eee;
lab_0x140006f11:;
int64_t v23 = *(int64_t *)(8 * v17 / 64 + (int64_t)&g85); // 0x140006f25
int64_t v24 = v23 + 72 * (v17 & 63);
*(int64_t *)(v24 + 40) = v15;
unsigned char v25 = *v19; // 0x140006f35
*(char *)(v24 + 56) = v25;
v16 = v15 & -256 | (int64_t)v25;
goto lab_0x140006f3b;
}
// Address range: 0x140006f6c - 0x140007078
int64_t function_140006f6c(void) {
int64_t v1 = 0; // 0x140006f87
int64_t v2 = 0; // 0x140006f87
int64_t v3; // 0x140006f6c
int64_t result; // 0x140006f6c
int64_t v4; // 0x140006f6c
int64_t * v5; // 0x140006fa6
char * v6; // 0x140006f6c
while (true) {
lab_0x140006f8a:
// 0x140006f8a
v3 = v2;
v4 = v1;
int64_t v7 = *(int64_t *)(8 * 0x100000000 * v4 / 0x4000000000 + (int64_t)&g85); // 0x140006fa2
int64_t v8 = 72 * (v4 & 63) + v7;
v5 = (int64_t *)(v8 + 40);
int64_t v9 = *v5; // 0x140006fa6
int64_t v10 = v9 + 2; // 0x140006fab
v6 = (char *)(v8 + 56);
if (v9 == -1 || v10 == 0) {
// 0x140006fbf
*v6 = -127;
int64_t * hFile = GetStdHandle(v4 == 0 ? -10 : v4 == 1 ? -11 : -12); // 0x140006fe5
int64_t v11 = (int64_t)hFile; // 0x140006fe5
switch (v11) {
case -1: {
goto lab_0x140007029;
}
case 0: {
goto lab_0x140007029;
}
default: {
int32_t v12 = GetFileType(hFile); // 0x140006ffb
if (v12 == 0) {
goto lab_0x140007029;
} else {
int64_t v13 = v12; // 0x140006ffb
int64_t v14 = v13 & 255; // 0x140007009
*v5 = v11;
if (v14 != 2) {
// 0x14000701d
result = v13;
if (v14 == 3) {
// 0x140007022
*v6 = *v6 | 8;
result = v13;
}
} else {
// 0x140007016
*v6 = *v6 | 64;
result = v13;
}
goto lab_0x14000704e;
}
}
}
} else {
// 0x140006fb5
*v6 = *v6 | -128;
result = v10;
goto lab_0x14000704e;
}
}
lab_0x14000705d:
// 0x14000705d
return result;
lab_0x140007029:
// 0x140007029
*v6 = *v6 | 64;
*v5 = -2;
result = 0;
if (g61 != 0) {
int64_t v15 = *(int64_t *)(g61 + v3); // 0x140007043
*(int32_t *)(v15 + 24) = -2;
result = v15;
}
goto lab_0x14000704e;
lab_0x14000704e:;
int64_t v16 = v4 + 1; // 0x14000704e
v1 = v16 & 0xffffffff;
v2 = v3 + 8;
if ((int32_t)v16 == 3) {
// break -> 0x14000705d
goto lab_0x14000705d;
}
goto lab_0x140006f8a;
}
// Address range: 0x140007078 - 0x1400070b3
int64_t function_140007078(void) {
// 0x140007078
__acrt_lock(7);
int64_t v1 = 0; // 0x140007093
if ((int32_t)function_14000ac2c(0) == 0) {
// 0x140007095
function_140006e7c();
function_140006f6c();
v1 = 1;
}
// 0x1400070a1
int64_t v2; // 0x140007078
return __acrt_lock2(7, v2) & -256 | v1;
}
// Address range: 0x1400070b4 - 0x1400070f4
int64_t function_1400070b4(void) {
int64_t v1 = 0; // 0x1400070be
int64_t * v2 = (int64_t *)(v1 + (int64_t)&g85); // 0x1400070c7
int64_t v3 = *v2; // 0x1400070c7
int64_t v4; // 0x1400070b4
int64_t v5 = v4; // 0x1400070ce
if (v3 != 0) {
// 0x1400070d0
v5 = function_14000abdc(v3);
*v2 = 0;
}
int64_t v6 = v5;
v1 += 8;
while (v1 < 1024) {
// 0x1400070c0
v2 = (int64_t *)(v1 + (int64_t)&g85);
v3 = *v2;
v5 = v6;
if (v3 != 0) {
// 0x1400070d0
v5 = function_14000abdc(v3);
*v2 = 0;
}
// 0x1400070da
v6 = v5;
v1 += 8;
}
// 0x1400070e7
return v6 & -256 | 1;
}
// Address range: 0x140007154 - 0x14000717e
int64_t function_140007154(int64_t a1, int64_t * a2) {
int64_t v1 = a1; // bp-24, 0x140007158
if (a2 != NULL) {
// 0x140007167
*a2 = a1;
}
// 0x14000716a
int64_t v2; // 0x140007154
int64_t v3; // 0x140007154
return function_140005c20(0, &v1, v3, v2 & -256 | 1);
}
// Address range: 0x140007180 - 0x1400072fe
int64_t function_140007180(int64_t a1, int64_t a2, uint64_t a3, int32_t a4) {
// 0x140007180
if (a2 == 0 || a3 == 0) {
// 0x1400072e0
g87 = 0;
// 0x1400072e9
return 0;
}
// 0x1400071b1
int64_t v1; // 0x140007180
char v2 = v1;
if (v2 == 0) {
// 0x1400071b6
if (a1 != 0) {
// 0x1400071bf
*(int16_t *)a1 = 0;
}
// 0x1400072e9
return 0;
}
// 0x1400071c7
int64_t v3; // bp-40, 0x140007180
function_14000331c(&v3, (int64_t)a4);
int32_t v4; // 0x140007180
int64_t v5 = v4; // 0x1400071d4
int32_t * v6 = (int32_t *)(v5 + 12); // 0x1400071d9
int32_t v7; // 0x140007180
int64_t v8; // 0x140007180
if (*v6 != 0xfde9) {
// 0x140007204
if (*(int64_t *)(v5 + 312) != 0) {
// 0x140007237
if ((int32_t)function_14000cc10(v2) == 0) {
// 0x14000729a
v8 = 1;
if ((int32_t)function_14000a420(*v6, 9) != 0) {
goto lab_0x14000721d;
} else {
goto lab_0x1400072cd;
}
} else {
int32_t * v9 = (int32_t *)(v5 + 8);
int32_t v10 = *v9; // 0x14000724d
v7 = v10;
if (v10 < 2 || (int64_t)v10 > a3) {
goto lab_0x140007286;
} else {
int64_t v11 = function_14000a420(*v6, 9); // 0x140007278
v7 = *v9;
if ((int32_t)v11 != 0) {
// 0x140007295
v8 = v7;
goto lab_0x14000721d;
} else {
goto lab_0x140007286;
}
}
}
} else {
// 0x14000720d
v8 = 1;
if (a1 != 0) {
// 0x140007212
*(int16_t *)a1 = (int16_t)v1 & 255;
v8 = 1;
}
goto lab_0x14000721d;
}
} else {
int64_t v12 = function_14000cc5c(a1); // 0x1400071f2
v8 = (int32_t)v12 < 0 ? 0xffffffff : v12 & 0xffffffff;
goto lab_0x14000721d;
}
lab_0x14000721d:;
// 0x14000721d
char v13; // 0x140007180
if (v13 != 0) {
int32_t * v14 = (int32_t *)(v3 + 936); // 0x140007229
*v14 = *v14 & -3;
}
// 0x1400072e9
return v8 & 0xffffffff;
lab_0x1400072cd:
// 0x1400072cd
*_errno() = 42;
v8 = 0xffffffff;
goto lab_0x14000721d;
lab_0x140007286:
// 0x140007286
if ((int64_t)v7 > a3) {
goto lab_0x1400072cd;
} else {
// 0x14000728f
if (*(char *)(a2 + 1) == 0) {
goto lab_0x1400072cd;
} else {
// 0x140007295
v8 = v7;
goto lab_0x14000721d;
}
}
}
// Address range: 0x140007300 - 0x140007308
int64_t function_140007300(int32_t * a1, int64_t a2, int64_t a3) {
// 0x140007300
return function_140007180((int64_t)a1, a2, a3, 0);
}
// Address range: 0x140007308 - 0x1400074a4
int64_t function_140007308(int64_t a1, int64_t a2, uint64_t a3, int16_t a4, int64_t a5) {
int64_t v1 = a5;
int16_t v2 = a4; // bp+32, 0x14000730d
if (a2 == 0 && a3 != 0) {
// 0x140007330
if (a1 != 0) {
// 0x140007335
*(int32_t *)a1 = (int32_t)(a2 & a1);
}
// 0x1400073fd
return 0;
}
if (a1 != 0) {
// 0x140007343
*(int32_t *)a1 = -1;
}
int64_t v3 = a4;
if (a3 >= 0x80000000) {
// 0x14000734f
*_errno() = 22;
function_140006270(a1, a2, a3, v3);
// 0x1400073fd
return 22;
}
// 0x140007365
int32_t v4; // 0x140007308
int64_t v5 = v4; // 0x140007365
int64_t v6; // bp-56, 0x140007308
function_14000331c(&v6, v5);
int64_t v7; // 0x140007308
uint32_t v8 = *(int32_t *)(v7 + 12); // 0x140007376
int64_t v9; // 0x140007308
int64_t v10; // 0x140007308
int64_t v11; // 0x140007308
int64_t v12; // 0x140007308
int64_t v13; // 0x140007308
if (v8 != 0xfde9) {
// 0x1400073af
if (*(int64_t *)(v7 + 312) != 0) {
// 0x140007426
v1 = 0;
int64_t v14 = &v2; // 0x140007433
int32_t v15 = function_14000a47c(v8, 0, v14, 1, a2, (int32_t)a3); // 0x140007453
if (v15 == 0) {
// 0x140007468
if (GetLastError() != 122) {
goto lab_0x1400073de;
} else {
// 0x140007477
v9 = v8;
v13 = 0;
v10 = v14;
v11 = 1;
if (a2 != 0 && a3 != 0) {
// 0x140007481
function_140001e50((int64_t *)a2, 0, a3, 1);
v9 = a2;
v13 = 0;
v10 = a3;
v11 = 1;
}
goto lab_0x14000748e;
}
} else {
// 0x140007457
if ((int32_t)v1 != 0) {
goto lab_0x1400073de;
} else {
// 0x14000745d
v12 = 0;
if (a1 != 0) {
// 0x140007462
*(int32_t *)a1 = v15;
v12 = 0;
}
goto lab_0x1400073ea;
}
}
} else {
if (a4 < 256) {
if (a2 == 0) {
goto lab_0x140007419;
} else {
// 0x140007412
v9 = 255;
v13 = v5;
v10 = 0;
v11 = v3;
if (a3 == 0) {
goto lab_0x14000748e;
} else {
// 0x140007417
*(char *)a2 = (char)a4;
goto lab_0x140007419;
}
}
} else {
if (a2 != 0 && a3 != 0) {
// 0x1400073d1
function_140001e50((int64_t *)a2, 0, a3, v3);
}
goto lab_0x1400073de;
}
}
} else {
// 0x140007381
v1 = 0;
uint32_t v16 = (int32_t)function_14000ce10(a2, a4, &v1);
if (a1 != 0) {
// 0x14000739b
*(int32_t *)a1 = v16;
}
// 0x14000739d
v12 = 0;
if (v16 >= 5) {
// 0x1400073a6
v12 = (int64_t)*_errno();
}
goto lab_0x1400073ea;
}
lab_0x1400073ea:;
// 0x1400073ea
char v17; // 0x140007308
if (v17 != 0) {
int32_t * v18 = (int32_t *)(v6 + 936); // 0x1400073f4
*v18 = *v18 & -3;
}
// 0x1400073fd
return v12 & 0xffffffff;
lab_0x1400073de:
// 0x1400073de
*_errno() = 42;
v12 = 42;
goto lab_0x1400073ea;
lab_0x140007419:
// 0x140007419
v12 = 0;
if (a1 != 0) {
// 0x14000741e
*(int32_t *)a1 = 1;
v12 = 0;
}
goto lab_0x1400073ea;
lab_0x14000748e:
// 0x14000748e
*_errno() = 34;
function_140006270(v9, v13, v10, v11);
v12 = 34;
goto lab_0x1400073ea;
}
// Address range: 0x1400074a4 - 0x1400075f4
int64_t function_1400074a4(int64_t a1, uint64_t a2) {
// 0x1400074a4
int64_t v1; // 0x1400074a4
if (g25 >= 5) {
int64_t v2 = a1 & 31; // 0x1400074be
uint64_t v3 = v2 == 0 ? 0 : 32 - v2; // 0x1400074cb
int64_t v4 = v3 > a2 ? a2 : v3; // 0x1400074d4
int64_t v5 = a1; // 0x1400074de
int64_t v6 = a1; // 0x1400074de
if (v4 != 0) {
v6 = v5;
while (*(char *)v5 != 0) {
int64_t v7 = v5 + 1; // 0x1400074e5
v5 = v7;
v6 = v7;
if (v7 == v4 + a1) {
// break -> 0x1400074ed
break;
}
v6 = v5;
}
}
int64_t result = v6 - a1; // 0x1400074f0
if (result != v4) {
// 0x1400075f0
return result;
}
int64_t v8 = a2 - v4 & -32; // 0x140007505
int64_t v9 = v6; // 0x14000750f
int64_t v10 = v6; // 0x14000750f
if (v8 != 0) {
int128_t v11; // 0x1400074a4
int128_t v12 = v11;
int128_t v13 = __asm_vpxor(v12, v12); // 0x140007511
int256_t v14; // 0x1400074a4
int32_t v15 = __asm_vpmovmskb(__asm_vpcmpeqb(v14, *(int256_t *)v9)); // 0x140007519
__asm_vzeroupper();
v10 = v9;
while (v15 == 0) {
int64_t v16 = v9 + 32; // 0x140007524
v9 = v16;
v10 = v16;
if (v16 == v6 + v8) {
// break -> 0x14000752d
break;
}
v12 = v13;
v13 = __asm_vpxor(v12, v12);
v15 = __asm_vpmovmskb(__asm_vpcmpeqb(v14, *(int256_t *)v9));
__asm_vzeroupper();
v10 = v9;
}
}
int64_t v17 = a2 + a1; // 0x14000752d
int64_t v18 = v10; // 0x140007542
v1 = v10;
if (v10 != v17) {
v1 = v18;
while (*(char *)v18 != 0) {
int64_t v19 = v18 + 1; // 0x14000753c
v18 = v19;
v1 = v19;
if (v19 == v17) {
// break -> 0x1400075ed
break;
}
v1 = v18;
}
}
// 0x1400075f0
return v1 - a1;
}
if (g25 < 1) {
int64_t v20 = a1; // 0x1400075de
v1 = a1;
if (a2 != 0) {
v1 = v20;
while (*(char *)v20 != 0) {
int64_t v21 = v20 + 1; // 0x1400075e5
v20 = v21;
v1 = v21;
if (v21 == a2 + a1) {
// break -> 0x1400075ed
break;
}
v1 = v20;
}
}
// 0x1400075f0
return v1 - a1;
}
int64_t v22 = a1 & 15; // 0x140007552
uint64_t v23 = v22 == 0 ? 0 : 16 - v22; // 0x140007563
int64_t v24 = v23 > a2 ? a2 : v23; // 0x14000756c
int64_t v25 = a1; // 0x140007577
int64_t v26 = a1; // 0x140007577
if (v24 != 0) {
v26 = v25;
while (*(char *)v25 != 0) {
// 0x14000757e
v25++;
v26 = v25;
if (v25 == v24 + a1) {
// break -> 0x140007586
break;
}
v26 = v25;
}
}
int64_t result2 = v26 - a1; // 0x140007589
if (result2 != v24) {
// 0x1400075f0
return result2;
}
// 0x140007591
int128_t v27; // 0x1400074a4
int128_t v28 = __asm_xorps(v27, v27); // 0x14000759a
int64_t v29 = a2 - v24 & -16; // 0x14000759d
int64_t v30 = v26; // 0x1400075a7
int64_t v31 = v26; // 0x1400075a7
if (v29 != 0) {
int128_t v32 = __asm_pcmpeqb(__asm_movdqa_9(v28), *(int128_t *)v30); // 0x1400075ad
v31 = v30;
while (__asm_pmovmskb(v32) == 0) {
// 0x1400075b9
v30 += 16;
v31 = v30;
if (v30 == v26 + v29) {
// break -> 0x1400075c2
break;
}
v32 = __asm_pcmpeqb(__asm_movdqa_9(v28), *(int128_t *)v30);
v31 = v30;
}
}
int64_t v33 = a2 + a1; // 0x1400075c2
if (v31 == v33) {
// 0x1400075f0
return v31 - a1;
}
int64_t v34 = v31; // 0x1400075d3
while (*(char *)v34 != 0) {
// 0x1400075cd
v34++;
if (v34 == v33) {
// break -> 0x1400075ed
break;
}
}
// 0x1400075f0
return v34 - a1;
}
// Address range: 0x1400075f4 - 0x1400077ca
int64_t function_1400075f4(int64_t a1, uint64_t a2) {
// 0x1400075f4
int64_t v1; // 0x1400075f4
if (g25 >= 5) {
if ((a1 & 1) != 0) {
int64_t v2 = 2 * a2; // 0x14000760f
int64_t v3 = a1; // 0x140007619
v1 = a1;
if (v2 != 0) {
v1 = v3;
while (*(int16_t *)v3 != 0) {
int64_t v4 = v3 + 2; // 0x14000762a
v3 = v4;
v1 = v4;
if (v4 == v2 + a1) {
// break -> 0x1400077c0
break;
}
v1 = v3;
}
}
// 0x1400077c6
return (v1 - a1) / 2;
}
int64_t v5 = a1 & 31; // 0x140007638
uint64_t v6 = v5 == 0 ? 0 : (32 - v5) / 2; // 0x14000764f
int64_t v7 = v6 > a2 ? a2 : v6; // 0x140007655
int64_t v8 = a1; // 0x140007662
int64_t v9 = a1; // 0x140007662
if (v7 != 0) {
v9 = v8;
while (*(int16_t *)v8 != 0) {
int64_t v10 = v8 + 2; // 0x140007669
v8 = v10;
v9 = v10;
if (v10 == 2 * v7 + a1) {
// break -> 0x140007672
break;
}
v9 = v8;
}
}
int64_t v11 = v9 - a1; // 0x140007672
int64_t result = v11 / 2; // 0x140007675
if (result != v7) {
// 0x1400077c6
return result;
}
int64_t v12 = (v11 & -2) + a1; // 0x140007681
int64_t v13 = 2 * (result + (a2 - v7 & 0x7fffffffffffffe0)) + a1; // 0x140007692
int64_t v14 = v12; // 0x140007699
int64_t v15 = v12; // 0x140007699
if (v12 != v13) {
int128_t v16; // 0x1400075f4
int128_t v17 = v16;
int128_t v18 = __asm_vpxor(v17, v17); // 0x14000769b
int256_t v19; // 0x1400075f4
int32_t v20 = __asm_vpmovmskb(__asm_vpcmpeqw(v19, *(int256_t *)v14)); // 0x1400076a4
__asm_vzeroupper();
v15 = v14;
while (v20 == 0) {
int64_t v21 = v14 + 32; // 0x1400076af
v14 = v21;
v15 = v21;
if (v21 == v13) {
// break -> 0x1400076b8
break;
}
v17 = v18;
v18 = __asm_vpxor(v17, v17);
v20 = __asm_vpmovmskb(__asm_vpcmpeqw(v19, *(int256_t *)v14));
__asm_vzeroupper();
v15 = v14;
}
}
int64_t v22 = 2 * a2 + a1; // 0x1400076b8
if (v15 == v22) {
// 0x1400077c6
return (v15 - a1) / 2;
}
int64_t v23 = v15; // 0x1400076cb
while (*(int16_t *)v23 != 0) {
// 0x1400076c4
v23 += 2;
if (v23 == v22) {
// break -> 0x1400077c0
break;
}
}
// 0x1400077c6
return (v23 - a1) / 2;
}
if (g25 < 1) {
int64_t v24 = 2 * a2; // 0x1400077a4
int64_t v25 = a1; // 0x1400077ae
v1 = a1;
if (v24 != 0) {
v1 = v25;
while (*(int16_t *)v25 != 0) {
int64_t v26 = v25 + 2; // 0x1400077b7
v25 = v26;
v1 = v26;
if (v26 == v24 + a1) {
// break -> 0x1400077c0
break;
}
v1 = v25;
}
}
// 0x1400077c6
return (v1 - a1) / 2;
}
if ((a1 & 1) != 0) {
int64_t v27 = 2 * a2; // 0x1400076e4
if (v27 == 0) {
// 0x1400077c6
return 0;
}
int64_t v28 = a1; // 0x1400076ee
while (*(int16_t *)v28 != 0) {
// 0x1400076ff
v28 += 2;
if (v28 == v27 + a1) {
// break -> 0x1400077c0
break;
}
}
// 0x1400077c6
return (v28 - a1) / 2;
}
int64_t v29 = a1 & 15; // 0x14000770d
uint64_t v30 = v29 == 0 ? 0 : (16 - v29) / 2; // 0x140007724
int64_t v31 = v30 > a2 ? a2 : v30; // 0x14000772a
int64_t v32 = a1; // 0x140007737
int64_t v33 = a1; // 0x140007737
if (v31 != 0) {
v33 = v32;
while (*(int16_t *)v32 != 0) {
int64_t v34 = v32 + 2; // 0x14000773e
v32 = v34;
v33 = v34;
if (v34 == 2 * v31 + a1) {
// break -> 0x140007747
break;
}
v33 = v32;
}
}
int64_t v35 = v33 - a1; // 0x140007747
int64_t result2 = v35 / 2; // 0x14000774a
if (result2 != v31) {
// 0x1400077c6
return result2;
}
int64_t v36 = (v35 & -2) + a1; // 0x140007755
int128_t v37; // 0x1400075f4
int128_t v38 = __asm_xorps(v37, v37); // 0x14000775c
int64_t v39 = 2 * (result2 + (a2 - v31 & 0x7ffffffffffffff0)) + a1; // 0x140007766
int64_t v40 = v36; // 0x140007784
int64_t v41 = v36; // 0x140007784
if (v36 != v39) {
int128_t v42 = __asm_pcmpeqw(__asm_movdqa_9(v38), *(int128_t *)v40); // 0x140007770
v41 = v40;
while (__asm_pmovmskb(v42) == 0) {
int64_t v43 = v40 + 16; // 0x14000777d
v40 = v43;
v41 = v43;
if (v43 == v39) {
// break -> 0x140007786
break;
}
v42 = __asm_pcmpeqw(__asm_movdqa_9(v38), *(int128_t *)v40);
v41 = v40;
}
}
int64_t v44 = 2 * a2 + a1; // 0x140007786
if (v41 == v44) {
// 0x1400077c6
return (v41 - a1) / 2;
}
int64_t v45 = v41; // 0x14000779d
while (*(int16_t *)v45 != 0) {
// 0x140007796
v45 += 2;
if (v45 == v44) {
// break -> 0x1400077c0
break;
}
}
// 0x1400077c6
return (v45 - a1) / 2;
}
// Address range: 0x1400077cc - 0x14000780b
int64_t function_1400077cc(void) {
// 0x1400077cc
int64_t v1; // 0x1400077cc
__acrt_lock((int32_t)v1);
int64_t v2; // 0x1400077cc
int32_t * v3 = (int32_t *)*(int64_t *)(v2 + 136); // 0x1400077f6
*v3 = *v3 + 1;
int64_t v4; // 0x1400077cc
return __acrt_lock2(*(int32_t *)&v4, v1);
}
// Address range: 0x14000780c - 0x140007849
int64_t function_14000780c(void) {
// 0x14000780c
int64_t v1; // 0x14000780c
__acrt_lock((int32_t)v1);
int64_t v2; // 0x14000780c
function_140007adc(v2, 0);
int64_t v3; // 0x14000780c
return __acrt_lock2((int32_t)v3, 0);
}
// Address range: 0x14000784c - 0x140007891
int64_t function_14000784c(void) {
// 0x14000784c
int64_t v1; // 0x14000784c
__acrt_lock((int32_t)v1);
int64_t v2; // 0x14000784c
int64_t v3 = *(int64_t *)*(int64_t *)*(int64_t *)(v2 + 8); // 0x140007873
function_140007adc(v2, (int32_t)v3);
int64_t v4; // 0x14000784c
return __acrt_lock2((int32_t)v4, v3);
}
// Address range: 0x140007894 - 0x1400078f3
int64_t function_140007894(void) {
// 0x140007894
int64_t v1; // 0x140007894
__acrt_lock((int32_t)v1);
int64_t v2; // 0x140007894
int64_t v3 = *(int64_t *)(v2 + 136); // 0x1400078b7
int64_t v4; // 0x140007894
if (v3 == 0) {
// 0x1400078e1
return __acrt_lock2(*(int32_t *)&v4, v1);
}
int32_t * v5 = (int32_t *)v3; // 0x1400078c6
int32_t v6 = *v5; // 0x1400078c6
*v5 = v6 - 1;
if (v3 != (int64_t)&g39 && v6 == 1) {
// 0x1400078db
_free_base((int64_t *)v3);
}
// 0x1400078e1
return __acrt_lock2(*(int32_t *)&v4, v1);
}
// Address range: 0x140007adc - 0x140007b43
int64_t function_140007adc(int64_t a1, int32_t a2) {
int64_t * v1 = (int64_t *)(a1 + 144); // 0x140007aec
int64_t v2 = *v1; // 0x140007aec
int64_t v3; // 0x140007adc
if (v2 != 0) {
int64_t v4 = __acrt_release_locale_ref(v2); // 0x140007af8
int64_t v5 = *v1; // 0x140007afd
v3 = v4;
if (v5 != g90) {
// 0x140007b0d
v3 = (int64_t)&g37;
if (v5 != (int64_t)&g37) {
// 0x140007b19
v3 = (int64_t)&g37;
if (*(int32_t *)(v5 + 16) == 0) {
// 0x140007b1f
v3 = __acrt_free_locale(v5);
}
}
}
}
int64_t v6 = a2;
*v1 = v6;
int64_t result = v3; // 0x140007b2e
if (a2 != 0) {
// 0x140007b30
result = __acrt_add_locale_ref(v6);
}
// 0x140007b38
return result;
}
// Address range: 0x140007b44 - 0x140007cc0
int64_t function_140007b44(void) {
int32_t errorCode = GetLastError(); // 0x140007b53
int32_t v1 = -1; // 0x140007b64
int64_t v2; // 0x140007b44
int64_t v3; // 0x140007b44
if (g36 == -1) {
goto lab_0x140007b85;
} else {
int64_t v4 = __acrt_FlsGetValue(g36); // 0x140007b66
if (v4 == 0) {
// 0x140007b7f
v1 = g36;
goto lab_0x140007b85;
} else {
if (v4 != -1) {
// 0x140007bef
SetLastError(errorCode);
v3 = v4;
v2 = (int64_t)&g113 - ((int64_t)&g113 + 1);
goto lab_dec_label_pc_unknown_2;
} else {
goto lab_dec_label_pc_0x140007bf1;
}
}
}
lab_0x140007b85:
// 0x140007b85
if ((int32_t)__acrt_FlsSetValue(v1, -1) == 0) {
goto lab_dec_label_pc_0x140007bf1;
} else {
int64_t * v5 = _calloc_base(1, 968); // 0x140007b9c
if (v5 != NULL) {
int64_t v6 = (int64_t)v5; // 0x140007b9c
if ((int32_t)__acrt_FlsSetValue(g36, v6) != 0) {
// 0x140007bef
_3f_construct_ptd_array_40__40_YAXQEAU__acrt_ptd_40__40__40_Z((int64_t *)&g113);
_free_base(NULL);
SetLastError(errorCode);
v3 = v6;
v2 = (int64_t)&g113 - ((int64_t)&g113 + 1);
goto lab_dec_label_pc_unknown_2;
} else {
// 0x140007bcb
__acrt_FlsSetValue(g36, 0);
// 0x140007bb8
_free_base(v5);
goto lab_dec_label_pc_0x140007bf1;
}
} else {
// 0x140007baf
__acrt_FlsSetValue(g36, 0);
// 0x140007bb8
_free_base(NULL);
goto lab_dec_label_pc_0x140007bf1;
}
}
lab_dec_label_pc_0x140007bf1:
SetLastError(errorCode);
v3 = 0;
v2 = 0;
goto lab_dec_label_pc_unknown_2;
lab_dec_label_pc_unknown_2:;
int64_t result = v2 & v3; // 0x140007bfd
if (result != 0) {
// 0x140007c02
return result;
}
// 0x140007c12
function_140005bc0();
__asm_int3();
int32_t v7 = -1; // 0x140007c27
if (g36 != -1) {
int64_t result2 = __acrt_FlsGetValue(g36); // 0x140007c29
switch (result2) {
case 0: {
// 0x140007c3e
v7 = g36;
// break -> 0x140007c44
break;
}
case -1: {
// 0x140007cb9
function_140005bc0();
__asm_int3();
return __asm_int3();
}
default: {
// 0x140007c02
return result2;
}
}
}
// 0x140007c44
if ((int32_t)__acrt_FlsSetValue(v7, -1) == 0) {
// 0x140007cb9
function_140005bc0();
__asm_int3();
return __asm_int3();
}
int64_t * v8 = _calloc_base(1, 968); // 0x140007c5b
int64_t * v9; // 0x140007b44
if (v8 != NULL) {
int64_t result3 = (int64_t)v8; // 0x140007c5b
if ((int32_t)__acrt_FlsSetValue(g36, result3) != 0) {
// 0x140007cab
_3f_construct_ptd_array_40__40_YAXQEAU__acrt_ptd_40__40__40_Z((int64_t *)&g113);
_free_base(NULL);
// 0x140007c02
return result3;
}
// 0x140007c8a
__acrt_FlsSetValue(g36, 0);
v9 = v8;
} else {
// 0x140007c6e
__acrt_FlsSetValue(g36, 0);
v9 = NULL;
}
// 0x140007c77
_free_base(v9);
// 0x140007cb9
function_140005bc0();
__asm_int3();
return __asm_int3();
}
// Address range: 0x140007cc0 - 0x140007d8c
int64_t function_140007cc0(void) {
int32_t errorCode = GetLastError(); // 0x140007ccf
int32_t v1 = -1; // 0x140007ce0
if (g36 == -1) {
goto lab_0x140007d01;
} else {
int64_t v2 = __acrt_FlsGetValue(g36); // 0x140007ce2
if (v2 == 0) {
// 0x140007cfb
v1 = g36;
goto lab_0x140007d01;
} else {
if (v2 != -1) {
// 0x140007d6b
SetLastError(errorCode);
return (int64_t)&g113 - ((int64_t)&g113 + 1) & v2;
}
goto lab_dec_label_pc_0x140007d6d;
}
}
lab_0x140007d01:
// 0x140007d01
if ((int32_t)__acrt_FlsSetValue(v1, -1) != 0) {
int64_t * v3 = _calloc_base(1, 968); // 0x140007d18
int64_t * v4; // 0x140007cc0
if (v3 != NULL) {
int64_t v5 = (int64_t)v3; // 0x140007d18
if ((int32_t)__acrt_FlsSetValue(g36, v5) != 0) {
// 0x140007d6b
_3f_construct_ptd_array_40__40_YAXQEAU__acrt_ptd_40__40__40_Z((int64_t *)&g113);
_free_base(NULL);
SetLastError(errorCode);
return (int64_t)&g113 - ((int64_t)&g113 + 1) & v5;
}
// 0x140007d47
__acrt_FlsSetValue(g36, 0);
v4 = v3;
} else {
// 0x140007d2b
__acrt_FlsSetValue(g36, 0);
v4 = NULL;
}
// 0x140007d34
_free_base(v4);
}
goto lab_dec_label_pc_0x140007d6d;
lab_dec_label_pc_0x140007d6d:
SetLastError(errorCode);
return 0;
}
// Address range: 0x140007d8c - 0x140007dc5
int64_t function_140007d8c(void) {
int64_t v1 = __acrt_FlsAlloc(0x1400079c4); // 0x140007d97
int32_t v2 = v1; // 0x140007d9c
g36 = v2;
if (v2 == -1) {
// 0x140007dc0
return v1 & -256;
}
int64_t v3 = function_140007cc0(); // 0x140007dab
if (v3 != 0) {
// 0x140007dc0
return v3 & -256 | 1;
}
// 0x140007dc0
return __acrt_uninitialize_ptd2(0) & -256;
}
// Address range: 0x140007e54 - 0x1400081d4
int64_t function_140007e54(int64_t a1, int64_t a2, uint64_t a3, int64_t a4, int64_t a5, int64_t a6, int64_t a7, int64_t a8, int64_t a9, int64_t a10) {
char * v1 = (char *)a2;
*v1 = 0;
int64_t v2 = (int32_t)a6 >= 0 ? a6 & 0xffffffff : 0; // 0x140007e97
int64_t v3; // bp-72, 0x140007e54
function_14000331c(&v3, a9);
int64_t v4 = 0x100000000 * v2 + 0xb00000000;
int64_t v5 = v4 / 0x100000000; // 0x140007ea5
char * v6; // 0x140007e54
int64_t v7; // 0x140007e54
int64_t v8; // 0x140007e54
int64_t v9; // 0x140007e54
int64_t v10; // 0x140007e54
int64_t result; // 0x140007e54
int64_t v11; // 0x1400080b2
char * v12; // 0x140007e54
if (v5 < a3) {
int64_t v13 = v5 & 0x7ff0000000000000; // 0x140007ed1
if (v13 != 0x7ff0000000000000) {
char * v14 = v1; // 0x140007f66
int64_t v15 = a2; // 0x140007f66
if (v4 < 0) {
// 0x140007f68
*v1 = 45;
v15 = a2 + 1;
v14 = (char *)v15;
}
// 0x140007f70
int64_t v16; // 0x140007e54
if (v13 != 0) {
// 0x140007fc7
*v14 = 49;
v16 = 1023;
} else {
// 0x140007faf
*v14 = 48;
v16 = (v5 & 0xfffffffffffff) == 0 ? 0 : 1022;
}
int64_t v17 = v5; // 0x140007fd2
char v18 = 0; // 0x140007fd2
if (v2 != 0) {
// 0x140007fd8
int64_t v19; // 0x140007e54
v17 = *(int64_t *)(v19 + 248);
v18 = *(char *)*(int64_t *)v17;
}
int64_t v20 = v15 + 1; // 0x140007f77
int64_t v21 = a7 & 255 ^ 1; // 0x140007f83
int64_t v22 = 32 * v21 | 7; // 0x140007fa7
int64_t v23 = v15 + 2; // 0x140007fcc
char * v24 = (char *)v20; // 0x140007fe9
*v24 = v18;
int64_t v25 = v17; // 0x140007fef
int64_t v26 = 0xf000000000000; // 0x140007fef
int64_t v27 = v2; // 0x140007fef
int64_t v28 = 48; // 0x140007fef
int64_t v29 = v23; // 0x140007fef
int64_t v30 = v17; // 0x140007fef
int64_t v31 = 2047; // 0x140007fef
int64_t v32 = v2; // 0x140007fef
int64_t v33 = v23; // 0x140007fef
if ((v17 & 0xfffffffffffff) != 0) {
int64_t v34 = v25; // 0x140008005
int64_t v35 = v26; // 0x140008005
int64_t v36 = v27; // 0x140008005
int64_t v37 = v28; // 0x140008005
int64_t v38 = v29; // 0x140008005
while ((int32_t)v27 >= 1) {
int64_t v39 = v28 & 255 | v25 & -256; // 0x14000800a
int64_t v40 = ((v25 & 0xfffffffffffff & v26) >> (v28 & 63)) + 48; // 0x140008016
int64_t v41 = (int16_t)v40 < 58 ? 0 : v22;
*(char *)v29 = (char)(v41 + v40);
int64_t v42 = v27 + 0xffffffff & 0xffffffff; // 0x140008026
int64_t v43 = v29 + 1; // 0x140008028
int64_t v44 = v26 / 16; // 0x14000802b
int16_t v45 = (int16_t)v28 - 4; // 0x14000802f
int64_t v46 = v28 & -0x10000 | (int64_t)v45; // 0x14000802f
v25 = v39;
v26 = v44;
v27 = v42;
v28 = v46;
v29 = v43;
v34 = v39;
v35 = v44;
v36 = v42;
v37 = v46;
v38 = v43;
if (v45 < 0) {
// break -> 0x140008036
break;
}
v34 = v25;
v35 = v26;
v36 = v27;
v37 = v28;
v38 = v29;
}
// 0x140008036
v30 = v34;
v31 = v35;
v32 = v36;
v33 = v38;
if ((int16_t)v37 >= 0) {
int64_t v47 = function_140008748(a1, v35, v37, (int32_t)a10); // 0x140008047
v30 = a1;
v31 = v35;
v32 = v36;
v33 = v38;
if ((char)v47 != 0) {
int64_t v48 = v38 - 1;
char * v49 = (char *)v48; // 0x14000805a
unsigned char v50 = *v49; // 0x14000805a
if ((v50 - 70 & -33) == 0) {
// branch -> 0x14000806b
}
int64_t v51 = v35 & -256 | (int64_t)v50;
if (v48 == v20) {
char * v52 = (char *)(v38 - 2); // 0x140008083
*v52 = *v52 + 1;
v30 = v20;
v31 = v51;
v32 = v36;
v33 = v38;
} else {
// 0x140008070
*v49 = (char)(v50 != 57 ? v51 + 1 : v22 + 58);
v30 = v48;
v31 = v51;
v32 = v36;
v33 = v38;
}
}
}
}
int64_t v53 = v30; // 0x140008088
int64_t v54 = v33; // 0x140008088
if ((int32_t)v32 >= 1) {
int64_t v55 = v32 & 0xffffffff; // 0x14000808a
function_140001e50((int64_t *)v33, (int32_t)v31 & -256 | 48, v55, 48);
v53 = v33;
v54 = v33 + v55;
}
int64_t v56 = *v24 != 0 ? v54 : v20; // 0x1400080a2
*(char *)v56 = 32 * (char)v21 + 80;
v11 = v56 + 2;
int64_t v57 = v53 / 0x10000000000000 & 2047; // 0x1400080bd
int64_t v58 = v57 - v16; // 0x1400080c4
int64_t v59 = v58 >= 0 ? v58 : v16 - v57;
*(char *)(v56 + 1) = v58 < 0 ? 45 : 43;
v12 = (char *)v11;
*v12 = 48;
if (v59 < 1000) {
// 0x140008125
v6 = v12;
v7 = v11;
v9 = v59;
v10 = v59;
v8 = v11;
if (v59 < 100) {
goto lab_0x14000815e;
} else {
goto lab_0x140008130;
}
} else {
int64_t v60 = v56 + 3; // 0x140008100
int64_t v61 = (int64_t)(0x20c49ba5e353f7cf * (int128_t)v59 / 0x8000000000000000) / 128; // 0x140008107
int64_t v62 = (v61 >> 63) + v61; // 0x140008112
*v12 = (char)v62 + 48;
v6 = (char *)v60;
v7 = v60;
v9 = -1000 * v62 + v59;
goto lab_0x140008130;
}
} else {
int64_t v63 = function_1400081d4(a1, a2, a3); // 0x140007f1a
if ((int32_t)v63 == 0) {
int64_t v64 = function_1400122c8(a2, 101); // 0x140007f35
result = 0;
if (v64 != 0) {
// 0x140007f43
*(char *)v64 = (32 * (char)a7 ^ 32) + 80;
*(char *)(v64 + 3) = 0;
result = 0;
}
} else {
// 0x140007f25
*v1 = 0;
result = v63 & 0xffffffff;
}
goto lab_0x1400081a1;
}
} else {
// 0x140007ead
*_errno() = 34;
function_140006270(v5, a9, a3, a4);
result = 34;
goto lab_0x1400081a1;
}
lab_0x1400081a1:;
// 0x1400081a1
char v65; // 0x140007e54
if (v65 != 0) {
int32_t * v66 = (int32_t *)(v3 + 936); // 0x1400081ad
*v66 = *v66 & -3;
}
// 0x1400081b4
return result;
lab_0x14000815e:;
int64_t v67 = v8;
int64_t v68 = v10;
char * v69 = v12; // 0x140008161
int64_t v70 = v68; // 0x140008161
int64_t v71 = v11; // 0x140008161
if (v68 < 10 != (v67 == v11)) {
int64_t v72 = (int64_t)(0x6666666666666667 * (int128_t)v68 / 0x8000000000000000) / 4; // 0x140008176
int64_t v73 = (v72 >> 63) + v72; // 0x140008181
*(char *)v67 = (char)v73 + 48;
int64_t v74 = v67 + 1; // 0x14000818a
v69 = (char *)v74;
v70 = -10 * v73 + v68;
v71 = v74;
}
// 0x140008194
*v69 = (char)v70 + 48;
*(char *)(v71 + 1) = 0;
result = 0;
goto lab_0x1400081a1;
lab_0x140008130:;
int64_t v75 = v9;
int64_t v76 = (v75 + (int64_t)(-0x5c28f5c28f5c28f5 * (int128_t)v75 / 0x8000000000000000)) / 64; // 0x140008140
int64_t v77 = (v76 >> 63) + v76; // 0x14000814b
*v6 = (char)v77 + 48;
v10 = -100 * v77 + v75;
v8 = v7 + 1;
goto lab_0x14000815e;
}
// Address range: 0x1400081d4 - 0x1400082c4
int64_t function_1400081d4(int64_t a1, int64_t a2, int64_t a3) {
// 0x1400081d4
int32_t v1; // 0x1400081d4
uint64_t v2 = (int64_t)(uint32_t)(v1 + 2) + 1; // 0x140008208
int64_t v3 = v1 + 1; // 0x14000820b
int32_t v4; // bp-24, 0x1400081d4
int64_t v5; // 0x1400081d4
uint64_t v6; // 0x1400081d4
int64_t v7 = function_14000d44c(a1, v3, (int64_t *)&v4, v5, v2 < v6 ? v2 : v6); // 0x140008219
int64_t v8 = a3 == -1 ? -1 : (int64_t)(v1 >= 0 == (v1 != 0)) + a3 + (int64_t)(v4 == 45); // 0x140008256
int32_t v9; // 0x1400081d4
int64_t v10 = function_14000cec4((int64_t)(v1 >= 0 == (v1 != 0)) + a2 + (int64_t)(v4 == 45), v8, v3, (int64_t *)&v4, 0x100000000 * v7 / 0x100000000, (int64_t)v9); // 0x140008264
int64_t result; // 0x1400081d4
if ((int32_t)v10 == 0) {
// 0x140008272
int32_t v11; // 0x1400081d4
unsigned char v12; // 0x1400081d4
int64_t v13; // 0x1400081d4
int64_t v14 = function_1400082c4(a2, a3, (int64_t)v1, (int64_t)&v4 & -256 | (int64_t)v12, (int64_t)v11, (int64_t *)&v4, 0, v13); // 0x1400082aa
result = v14;
} else {
// 0x14000826d
*(char *)a2 = 0;
result = v10;
}
// 0x1400082af
return result;
}
// Address range: 0x1400082c4 - 0x140008498
int64_t function_1400082c4(int64_t a1, uint64_t a2, int64_t a3, int64_t a4, int64_t a5, int64_t * a6, char a7, int64_t a8) {
int64_t v1 = 0x100000000 * a3;
int32_t v2 = a3; // 0x1400082e2
if ((v2 >= 0 == (v2 != 0) ? (v1 + 0x900000000) / 0x100000000 : 9) >= a2) {
// 0x1400082fb
*_errno() = 34;
function_140006270(a1, a2, a3, a4);
// 0x14000830e
return 34;
}
int64_t v3 = v1 / 0x100000000; // 0x1400082df
int32_t v4; // bp-40, 0x1400082c4
function_14000331c((int64_t *)&v4, a8);
if (a7 != 0) {
int64_t v5 = (int64_t)(*(int32_t *)a6 == 45) + a1; // 0x140008355
if ((int32_t)v3 >= 1) {
int64_t v6 = -1;
int64_t v7 = v6 + 1; // 0x140008360
while (*(char *)(v7 + v5) != 0) {
// 0x140008360
v6 = v7;
v7 = v6 + 1;
}
// 0x14000836a
function_140002760(v5 + 1, v5, v6 + 2, a4);
}
}
int64_t v8 = a1; // 0x14000837c
if (*(int32_t *)a6 == 45) {
// 0x14000837e
*(char *)a1 = 45;
v8 = a1 + 1;
}
int64_t v9 = v8; // 0x140008387
if ((int32_t)v3 >= 1) {
// 0x140008389
v9 = v8 + 1;
char * v10 = (char *)v9; // 0x140008389
*(char *)v8 = *v10;
int64_t v11; // 0x1400082c4
*v10 = *(char *)*(int64_t *)*(int64_t *)(v11 + 248);
}
int64_t v12 = v3 + (int64_t)(a7 ^ 1) + v9; // 0x1400083ba
char * v13 = (char *)v12; // 0x1400083cf
if (strcpy_s(v13, (int32_t)(a2 == -1 ? 0xffffffff : a2 + a1 - v12), "e+000") != 0) {
// 0x140008480
function_140006290(0, 0, 0, 0, 0);
__asm_int3();
__asm_int3();
return __asm_int3();
}
if ((char)a4 != 0) {
// 0x1400083e5
*v13 = 69;
}
int64_t v14 = (int64_t)a6;
int64_t v15 = v12 + 2; // 0x1400083dc
if (*(char *)*(int64_t *)(v14 + 8) != 48) {
int32_t v16 = *(int32_t *)(v14 + 4); // 0x1400083f1
int32_t v17 = v16 - 1; // 0x1400083f5
int32_t v18 = v17; // 0x1400083f9
if (v17 < 0) {
// 0x1400083fb
*(char *)(v12 + 1) = 45;
v18 = 1 - v16;
}
int32_t v19 = v18; // 0x140008406
if (v18 >= 100) {
int32_t v20 = (int32_t)(0x51eb851f * (int64_t)v18 / 0x100000000) / 32; // 0x140008410
int32_t v21 = (v20 >> 31) + v20; // 0x140008418
char * v22 = (char *)v15; // 0x14000841a
*v22 = *v22 + (char)v21;
v19 = -100 * v21 + v18;
}
int32_t v23 = v19; // 0x140008427
if (v19 >= 10) {
int32_t v24 = (int32_t)(0x66666667 * (int64_t)v19 / 0x100000000) / 4; // 0x140008431
int32_t v25 = (v24 >> 31) + v24; // 0x140008439
char * v26 = (char *)(v12 + 3); // 0x14000843b
*v26 = *v26 + (char)v25;
v23 = -10 * v25 + v19;
}
char * v27 = (char *)(v12 + 4); // 0x140008444
*v27 = *v27 + (char)v23;
}
if ((int32_t)a5 == 2) {
// 0x140008452
if (*(char *)v15 == 48) {
// 0x140008457
function_140002760(v15, v12 + 3, 3, a4);
}
}
// 0x140008466
char v28; // 0x1400082c4
if (v28 != 0) {
int32_t * v29 = (int32_t *)((int64_t)v4 + 936); // 0x140008472
*v29 = *v29 & -3;
}
// 0x14000830e
return 0;
}
// Address range: 0x140008498 - 0x1400085fd
int64_t function_140008498(int64_t a1) {
// 0x140008498
int32_t v1; // bp-40, 0x140008498
int64_t v2; // 0x140008498
function_14000331c((int64_t *)&v1, v2);
int64_t v3; // 0x140008498
int32_t * v4 = (int32_t *)(v3 + 4); // 0x1400084cd
int32_t v5 = *v4; // 0x1400084cd
int32_t v6 = v3;
int32_t v7 = v6; // 0x1400084d1
int64_t v8; // 0x140008498
int64_t v9; // 0x140008498
char v10; // 0x140008498
if (v10 != 0) {
// 0x1400084d3
v7 = v6;
if (v5 - 1 == (int32_t)v9) {
// 0x1400084da
*(int16_t *)(a1 - 1 + (int64_t)(v6 == 45) + (int64_t)v5) = 48;
v7 = *(int32_t *)&v8;
}
}
int64_t v11 = a1; // 0x1400084f1
if (v7 == 45) {
// 0x1400084f3
*(char *)a1 = 45;
v11 = a1 + 1;
}
int32_t v12 = *v4; // 0x1400084f9
int64_t v13; // 0x140008498
int64_t v14; // 0x140008498
int64_t v15; // 0x140008498
if (v12 >= 0 == (v12 != 0)) {
// 0x14000854e
v15 = v11 + (int64_t)v12;
goto lab_0x140008551;
} else {
if (v12 != 0) {
// 0x140008516
v13 = v11 + 1;
goto lab_0x14000852e;
} else {
// 0x140008507
if (*(char *)*(int64_t *)(v3 + 8) != 48) {
// 0x140008516
v13 = v11 + 1;
goto lab_0x14000852e;
} else {
int64_t v16 = v11 + 1;
v13 = v16;
v14 = v16;
if (v10 == 0) {
goto lab_0x14000852e;
} else {
goto lab_0x140008546;
}
}
}
}
lab_0x140008551:;
uint64_t v17 = v9 & 0xffffffff; // 0x1400084c0
if ((int32_t)v9 >= 1) {
int64_t v18 = -1;
int64_t v19 = v18 + 1; // 0x14000855c
while (*(char *)(v19 + v15) != 0) {
// 0x14000855c
v18 = v19;
v19 = v18 + 1;
}
int64_t v20 = v15 + 1; // 0x140008555
function_140002760(v20, v15, v18 + 2, v8);
int64_t v21; // 0x140008498
int64_t v22 = *(int64_t *)*(int64_t *)(v21 + 248); // 0x140008580
*(char *)v15 = *(char *)v22;
int32_t v23 = *v4; // 0x140008587
if (v23 < 0) {
uint64_t v24 = (int64_t)-v23; // 0x14000858f
int64_t v25 = v10 != 0 | v17 > v24 ? v24 : v17;
int64_t v26; // 0x140008498
if (v25 == 0) {
// 0x14000858f
v26 = 0;
} else {
int64_t v27 = -1;
int64_t v28 = v27 + 1; // 0x1400085a2
while (*(char *)(v28 + v20) != 0) {
// 0x1400085a2
v27 = v28;
v28 = v27 + 1;
}
int64_t v29 = 0x100000000 * v25 / 0x100000000;
function_140002760(v29 + v20, v20, v27 + 2, v8);
v26 = v29;
}
// 0x1400085bd
function_140001e50((int64_t *)v20, 48, v26, v8);
}
}
char v30; // 0x140008498
if (v30 != 0) {
int32_t * v31 = (int32_t *)((int64_t)v1 + 936); // 0x1400085d9
*v31 = *v31 & -3;
}
// 0x1400085e0
return 0;
lab_0x14000852e:;
int64_t v32 = -1;
int64_t v33 = v32 + 1; // 0x14000852e
while (*(char *)(v33 + v11) != 0) {
// 0x14000852e
v32 = v33;
v33 = v32 + 1;
}
// 0x140008538
function_140002760(v13, v11, v32 + 2, v8);
v14 = v13;
goto lab_0x140008546;
lab_0x140008546:
// 0x140008546
*(char *)v11 = 48;
v15 = v14;
goto lab_0x140008551;
}
// Address range: 0x140008600 - 0x140008745
int64_t function_140008600(int64_t a1, int64_t a2, int64_t a3) {
// 0x140008600
uint32_t v1; // 0x140008600
int64_t v2 = v1; // 0x14000862e
int128_t v3; // 0x140008600
int128_t v4; // 0x140008600
__asm_movups_10(0x8000000000000000 * v4 / 0x8000000000000000, __asm_xorps(v3, v3));
int128_t v5; // bp-24, 0x140008600
int64_t v6; // 0x140008600
int64_t v7 = function_14000d44c(a1, v2, (int64_t *)&v5, v6, (int64_t)&g113); // 0x14000863d
int64_t v8 = (int32_t)v5 == 45; // 0x14000865c
int64_t v9 = a3 == -1 ? -1 : a3 - v8; // 0x140008684
int32_t v10; // 0x140008600
int64_t result = function_14000cec4(v8 + a2, v9, v2, (int64_t *)&v5, 0x100000000 * v7 / 0x100000000, (int64_t)v10); // 0x14000868b
if ((int32_t)result != 0) {
// 0x140008694
*(char *)a2 = 0;
// 0x14000872f
return result;
}
// 0x14000869c
int32_t v11; // 0x140008600
int32_t v12 = v11 - 1; // 0x14000866c
int64_t result2; // 0x140008600
if (v12 > -5 == v1 > v12) {
// 0x1400086c1
result2 = function_140008498(a2);
} else {
// 0x1400086ed
int32_t v13; // 0x140008600
unsigned char v14; // 0x140008600
int64_t v15; // 0x140008600
int64_t v16 = function_1400082c4(a2, a3, v2, (int64_t)&v5 & -256 | (int64_t)v14, (int64_t)v13, (int64_t *)&v5, 1, v15); // 0x14000872a
result2 = v16;
}
// 0x14000872f
return result2;
}
// Address range: 0x140008748 - 0x14000885e
int64_t function_140008748(int64_t a1, int64_t a2, int64_t a3, int32_t a4) {
int64_t v1 = 0x1000000000000 * a3 / 0x1000000000000; // 0x140008775
uint64_t v2 = v1 & 63; // 0x140008785
int64_t v3 = (a1 & 0xfffffffffffff & a2) >> v2;
if (a4 == 0) {
// 0x14000883f
int64_t v4; // 0x140008748
return (int64_t)&v4 & -256 | (int64_t)((int16_t)v3 >= 8);
}
uint64_t v5 = v1 & 0xffffffff; // 0x14000877f
int64_t v6 = function_14000e718(v5); // 0x14000879c
int32_t v7 = v6; // 0x1400087a1
int64_t v8; // 0x140008748
if (v7 != 0) {
if (v7 != 512) {
// 0x14000882a
v8 = v6;
if (v7 != 256) {
// 0x14000883f
return v6 & -256;
}
} else {
// 0x14000881e
v8 = v6;
if ((int16_t)v3 != 0) {
// 0x14000883f
return 1 | v6 & -256;
}
}
} else {
int64_t v9 = (v5 & a2) >> v2;
uint16_t v10 = (int16_t)v9; // 0x1400087b7
if (v10 >= 9) {
// 0x14000883f
return 1 | v9 & -256;
}
// 0x1400087c4
v8 = v9;
if (v10 == 8) {
int64_t v11 = (v2 == 0 ? 0 : -1 << v2 ^ 0xffffffff) & v5; // 0x1400087d8
if (v11 != 0) {
// 0x14000883f
return 1 | v11 & -256;
}
int64_t v12 = 0x7ff0000000000000; // 0x1400087e4
int64_t v13 = 0; // 0x1400087e4
if ((int32_t)v1 != 48) {
// 0x1400087e6
v12 = 0xffffffffffff;
v13 = (v5 / 16 & a2) >> v2 & 1;
}
// 0x14000883f
return v13 | v12 & -256;
}
}
// 0x14000883f
return v8 & -256;
}
// Address range: 0x140008860 - 0x140008b98
int64_t function_140008860(int64_t * a1, int64_t a2, int64_t a3, int64_t a4, int64_t a5, int64_t a6, int64_t a7, uint64_t a8, int64_t a9, uint32_t a10) {
int64_t v1 = (int64_t)a1;
int64_t v2 = a4; // 0x140008888
if (a2 != 0 && a3 != 0 && a4 != 0) {
// 0x1400088ac
v2 = 0;
if (a5 != 0) {
int64_t v3 = 0x100000000 * a7 / 0x100000000;
int32_t v4 = a6; // 0x1400088c0
int64_t v5 = (a8 & 32) == 0 ? 0 : (int64_t)a10; // 0x1400089e0
int64_t v6 = 0; // 0x140008860
int64_t result; // 0x140008860
switch (v4) {
case 65: {
}
case 97: {
// 0x140008b2b
result = function_140007e54(v1, a2, a3, a4, a5, v3, (int64_t)(v4 == 65 | v4 < 72), a8 / 16 & 1 | 2, 0x100000000 * a9 / 0x100000000, 0x100000000 * v5 / 0x100000000);
// 0x140008b66
return result;
}
case 69: {
}
case 101: {
// 0x140008b66
return function_1400081d4(v1, a2, a3);
}
case 102: {
// 0x140008a5a
v6 = 1;
}
case 70: {
// 0x140008a5a
int128_t v7; // 0x140008860
int128_t v8; // 0x140008860
__asm_movups_10(0x8000000000000000 * v8 / 0x8000000000000000, __asm_xorps(v7, v7));
int128_t v9; // bp-24, 0x140008860
int64_t v10 = function_14000d44c(v6, v3 & 0xffffffff, (int64_t *)&v9, a4, (int64_t)&g113); // 0x140008a7b
int64_t v11 = (int32_t)v9 == 45; // 0x140008a94
int64_t v12 = a3 == -1 ? -1 : a3 - v11; // 0x140008aad
int32_t v13; // 0x140008860
int64_t v14 = function_14000cec4(v11 + a2, v12, (int64_t)(v13 + (int32_t)v3), (int64_t *)&v9, 0x100000000 * v10 / 0x100000000, 0x100000000 * v5 / 0x100000000); // 0x140008ab6
if ((int32_t)v14 == 0) {
// 0x140008ac7
result = function_140008498(a2);
} else {
// 0x140008abf
*(char *)a2 = 0;
result = v14;
}
// break -> 0x140008b66
break;
}
default: {
// 0x140008b66
return function_140008600(v1, a2, a3);
}
}
// 0x140008b66
return result;
}
}
// 0x14000888a
*_errno() = 22;
function_140006270(v1, a2, a3, v2);
// 0x140008b66
return 22;
}
// Address range: 0x140008bc0 - 0x140008bd6
int64_t function_140008bc0(int64_t a1, int64_t a2) {
int32_t * v1 = (int32_t *)(a2 + 16); // 0x140008bc0
int32_t v2 = *v1 - 1; // 0x140008bc0
*v1 = v2;
if (v2 < 0) {
function_14000e88c(a1, a2);
}
// 0x140008bca
*(char *)a2 = (char)a1;
*(int64_t *)a2 = a2 + 1;
return a1 & 255;
}
// Address range: 0x140008bf0 - 0x140008c36
int64_t function_140008bf0(int64_t a1) {
// 0x140008bf0
if ((int64_t)__acrt_iob_func(2) == a1) {
// 0x140008c30
return a1 & -256 | 1;
}
int64_t v1 = (int64_t)__acrt_iob_func(1); // 0x140008c0d
int64_t v2 = v1; // 0x140008c15
if (v1 == a1) {
// 0x140008c17
v2 = function_14000e944((int64_t)_fileno((struct _IO_FILE *)a1));
if ((int32_t)v2 != 0) {
// 0x140008c30
return v2 & -256 | 1;
}
}
// 0x140008c30
return v2 & -256;
}
// Address range: 0x140008c38 - 0x140008d00
int64_t function_140008c38(int64_t a1) {
int64_t v1 = function_140008bf0(a1); // 0x140008c45
if ((char)v1 == 0) {
// 0x140008cf5
return v1 & -256;
}
int64_t * v2 = __acrt_iob_func(1); // 0x140008c57
int64_t v3 = &g88; // 0x140008c5f
if ((int64_t)v2 != a1) {
int64_t v4 = (int64_t)__acrt_iob_func(2); // 0x140008c6f
v3 = &g89;
if (v4 != a1) {
// 0x140008cf5
return v4 & -256;
}
}
// 0x140008c80
g62++;
int32_t * v5 = (int32_t *)(a1 + 20); // 0x140008c86
uint32_t v6 = *v5; // 0x140008c86
if ((v6 & 1216) != 0) {
// 0x140008cf5
return (int64_t)v6 & -256;
}
// 0x140008c90
*v5 = v6 | 642;
int64_t * v7 = (int64_t *)v3; // 0x140008c98
int64_t v8 = *v7; // 0x140008c98
int64_t v9 = v8; // 0x140008c9e
if (v8 == 0) {
// 0x140008ca0
*v7 = (int64_t)_malloc_base(0x1000);
_free_base(NULL);
v9 = *v7;
if (v9 == 0) {
int64_t v10 = a1 + 28; // 0x140008cbc
*(int32_t *)(a1 + 16) = 2;
*(int64_t *)(a1 + 8) = v10;
*(int64_t *)a1 = v10;
*(int32_t *)(a1 + 32) = 2;
// 0x140008cf5
return v9 & -256 | 1;
}
}
// 0x140008cd9
*(int64_t *)(a1 + 8) = v9;
int64_t v11 = *v7; // 0x140008cdd
*(int64_t *)a1 = v11;
*(int32_t *)(a1 + 16) = 0x1000;
*(int32_t *)(a1 + 32) = 0x1000;
// 0x140008cf5
return v11 & -256 | 1;
}
// Address range: 0x140008d00 - 0x140008d39
int64_t function_140008d00(int64_t a1, int64_t a2) {
if ((char)a1 == 0) {
// 0x140008d38
int64_t result; // 0x140008d00
return result;
}
int32_t * v1 = (int32_t *)(a2 + 20); // 0x140008d09
uint32_t v2 = *v1; // 0x140008d09
int64_t result2 = v2 / 512; // 0x140008d14
if ((v2 & 512) != 0) {
// 0x140008d16
result2 = function_140006d6c(a2);
*v1 = *v1 & -641;
*(int32_t *)(a2 + 32) = 0;
*(int64_t *)(a2 + 8) = 0;
*(int64_t *)a2 = 0;
}
// 0x140008d38
return result2;
}
// Address range: 0x140008d3c - 0x140008d4e
int64_t function_140008d3c(uint64_t a1, uint64_t a2) {
if (a1 >= a2) {
// 0x140008d45
return (bool)(a1 > a2);
}
// 0x140008d41
return 0xffffffff;
}
// Address range: 0x140008d50 - 0x140008ec6
int64_t function_140008d50(int64_t a1, int64_t * a2, int64_t a3, int64_t a4) {
int64_t v1 = (int64_t)a2;
if (a1 == 0) {
char * v2 = (char *)(v1 + 40); // 0x140008d79
int64_t * v3 = (int64_t *)(v1 + 16);
if (*v2 != 0) {
// 0x140008d7e
_free_base((int64_t *)*v3);
*v2 = 0;
}
// 0x140008d8a
*v3 = 0;
*(int64_t *)(v1 + 24) = 0;
// 0x140008d92
*(int64_t *)(v1 + 32) = 0;
// 0x140008ea9
return 0;
}
int64_t v4; // 0x140008d50
if ((char)v4 == 0) {
int64_t * v5 = (int64_t *)(v1 + 24); // 0x140008d9f
int64_t * v6; // 0x140008d50
if (*v5 != 0) {
// 0x140008d9f
v6 = (int64_t *)(v1 + 16);
} else {
char * v7 = (char *)(v1 + 40); // 0x140008da5
int64_t * v8 = (int64_t *)(v1 + 16);
if (*v7 != 0) {
// 0x140008daa
_free_base((int64_t *)*v8);
*v7 = 0;
}
int64_t * v9 = _malloc_base(2); // 0x140008dbb
*v8 = (int64_t)v9;
int32_t v10 = v1; // 0x140008dca
int32_t result = (v10 ^ 15) + v10 + (int32_t)(v9 != NULL) & 12; // 0x140008dce
*v7 = (char)(result == 0);
*v5 = (int64_t)(result == 0);
v6 = v8;
if (result != 0) {
// 0x140008ea9
return result;
}
}
// 0x140008deb
*(int16_t *)*v6 = 0;
// 0x140008d92
*(int64_t *)(v1 + 32) = 0;
// 0x140008ea9
return 0;
}
int32_t v11 = a3; // 0x140008e04
int64_t v12 = function_14000a420(v11, 9); // 0x140008e0a
int32_t v13 = v12; // 0x140008e12
if (v13 != 0) {
int64_t v14 = 0x100000000 * v12 / 0x100000000; // 0x140008e0f
int64_t * v15 = (int64_t *)(v1 + 24); // 0x140008e2c
if (v14 > *v15) {
char * v16 = (char *)(v1 + 40); // 0x140008e35
int64_t * v17 = (int64_t *)(v1 + 16);
if (*v16 != 0) {
// 0x140008e3a
_free_base((int64_t *)*v17);
*v16 = 0;
}
int64_t * v18 = _malloc_base(2 * v13); // 0x140008e4a
*v17 = (int64_t)v18;
*v16 = (char)(v18 != NULL);
*v15 = v18 == NULL ? 0 : v14;
if (v18 == NULL) {
// 0x140008ea9
return 12;
}
}
int64_t v19 = function_14000a420(v11, 9); // 0x140008e92
if ((int32_t)v19 != 0) {
// 0x140008ea2
*(int64_t *)(v1 + 32) = 0x100000000 * v19 / 0x100000000 - 1;
// 0x140008ea9
return 0;
}
}
// 0x140008e16
__acrt_errno_map_os_error((int64_t)GetLastError(), 9, a1);
// 0x140008ea9
return (int64_t)*_errno();
}
// Address range: 0x140008ec8 - 0x140009052
int64_t function_140008ec8(int64_t * a1, int64_t * a2, int64_t a3, int64_t a4) {
int64_t v1 = (int64_t)a2;
if (a1 == NULL) {
char * v2 = (char *)(v1 + 40); // 0x140008ef1
int64_t * v3 = (int64_t *)(v1 + 16);
if (*v2 != 0) {
// 0x140008ef6
_free_base((int64_t *)*v3);
*v2 = 0;
}
// 0x140008f02
*v3 = 0;
*(int64_t *)(v1 + 24) = 0;
// 0x140008f0a
*(int64_t *)(v1 + 32) = 0;
// 0x140009035
return 0;
}
int64_t v4; // 0x140008ec8
if ((int16_t)v4 == 0) {
int64_t * v5 = (int64_t *)(v1 + 24); // 0x140008f18
int64_t * v6; // 0x140008ec8
if (*v5 != 0) {
// 0x140008f18
v6 = (int64_t *)(v1 + 16);
} else {
char * v7 = (char *)(v1 + 40); // 0x140008f1e
int64_t * v8 = (int64_t *)(v1 + 16);
if (*v7 != 0) {
// 0x140008f23
_free_base((int64_t *)*v8);
*v7 = 0;
}
int64_t * v9 = _malloc_base(1); // 0x140008f34
*v8 = (int64_t)v9;
int32_t v10 = v1; // 0x140008f43
int32_t result = (v10 ^ 15) + v10 + (int32_t)(v9 != NULL) & 12; // 0x140008f47
*v7 = (char)(result == 0);
*v5 = (int64_t)(result == 0);
v6 = v8;
if (result != 0) {
// 0x140009035
return result;
}
}
// 0x140008f64
*(char *)*v6 = 0;
// 0x140008f0a
*(int64_t *)(v1 + 32) = 0;
// 0x140009035
return 0;
}
int64_t v11 = (int64_t)a1;
int32_t v12 = a3; // 0x140008f83
int64_t v13 = function_14000a47c(v12, 0, v11, -1, 0, 0); // 0x140008f8b
if ((int32_t)v13 != 0) {
int64_t v14 = 0x100000000 * v13 / 0x100000000; // 0x140008f90
int64_t * v15 = (int64_t *)(v1 + 24); // 0x140008fb0
uint64_t v16 = *v15; // 0x140008fb0
int64_t * v17; // 0x140008ec8
int32_t v18; // 0x140008ec8
if (v14 > v16) {
char * v19 = (char *)(v1 + 40); // 0x140008fb9
int64_t * v20 = (int64_t *)(v1 + 16);
if (*v19 != 0) {
// 0x140008fbe
_free_base((int64_t *)*v20);
*v19 = 0;
}
int32_t v21 = v14;
int64_t * v22 = _malloc_base(v21); // 0x140008fcd
*v20 = (int64_t)v22;
*v19 = (char)(v22 != NULL);
*v15 = v22 == NULL ? 0 : v14;
v18 = v21;
v17 = v20;
if (v22 == NULL) {
// 0x140009035
return 12;
}
} else {
// 0x140008fb0
v18 = v16;
v17 = (int64_t *)(v1 + 16);
}
int64_t v23 = function_14000a47c(v12, 0, v11, -1, *v17, v18); // 0x14000901e
if ((int32_t)v23 != 0) {
// 0x14000902e
*(int64_t *)(v1 + 32) = 0x100000000 * v23 / 0x100000000 - 1;
// 0x140009035
return 0;
}
}
// 0x140008f97
__acrt_errno_map_os_error((int64_t)GetLastError(), 0, v11);
// 0x140009035
return (int64_t)*_errno();
}
// Address range: 0x140009054 - 0x140009260
int64_t function_140009054(int64_t a1, int64_t a2) {
// 0x140009054
int64_t v1; // 0x140009054
if (a2 == 0) {
// 0x14000907a
*_errno() = 22;
int64_t v2; // 0x140009054
function_140006270(a1, a2, v2, v1);
// 0x140009230
return 22;
}
// 0x140009090
int128_t v3; // 0x140009054
int128_t v4 = __asm_xorps(v3, v3); // 0x140009090
int64_t * v5 = (int64_t *)a2; // 0x140009093
*v5 = 0;
int64_t * v6; // bp-88, 0x140009054
int64_t v7 = (int64_t)v6;
__asm_movdqu((int128_t)v7, v4);
int64_t v8 = v7; // 0x1400090a5
int64_t v9; // 0x140009054
int64_t v10; // 0x140009054
if (a1 == 0) {
goto lab_0x1400090fd;
} else {
int64_t v11 = a1; // 0x1400090e7
int64_t v12 = a1; // 0x1400090eb
int64_t v13 = function_1400093e8(v12, v12, (int128_t *)&v6, v1); // 0x1400090dc
while ((int32_t)v13 == 0) {
// 0x1400090e7
v11 += 8;
v12 = *(int64_t *)v11;
if (v12 == 0) {
// 0x1400090a2
v8 = (int64_t)v6;
goto lab_0x1400090fd;
}
v13 = function_1400093e8(v12, v12, (int128_t *)&v6, v1);
}
// 0x1400090f0
v10 = v13 & 0xffffffff;
v9 = (int64_t)v6;
goto lab_0x1400091f5;
}
lab_0x1400090fd:;
// 0x1400090fd
uint64_t v14; // 0x140009054
int64_t v15 = v14 - v8; // 0x140009112
uint64_t v16 = v15 + 7; // 0x140009122
int64_t v17 = v8; // 0x140009138
int64_t v18 = 0; // 0x140009138
if (v14 >= v8 && v16 >= 8) {
int64_t v19 = 0; // 0x140009140
int64_t v20 = v19; // 0x140009147
while (*(char *)(v19 + *(int64_t *)v17) != 0) {
// 0x140009140
v19 = v20 + 1;
v20 = v19;
}
int64_t v21 = 1 + v19; // 0x140009150
int64_t v22 = 1; // 0x140009153
v17 += 8;
int64_t v23 = v22; // 0x140009159
int64_t v24 = v21; // 0x140009159
v18 = v21;
while (v22 != v16 / 8) {
// 0x14000913a
v19 = 0;
v20 = v19;
while (*(char *)(v19 + *(int64_t *)v17) != 0) {
// 0x140009140
v19 = v20 + 1;
v20 = v19;
}
// 0x140009149
v21 = v24 + 1 + v19;
v22 = v23 + 1;
v17 += 8;
v23 = v22;
v24 = v21;
v18 = v21;
}
}
int64_t v25 = v15 / 8 + 1; // 0x14000911f
int64_t v26 = function_140004ae8(v25, v18, 1); // 0x14000916b
int64_t v27 = -1; // 0x140009176
if (v26 != 0) {
if (v14 != v8) {
int64_t v28 = v26 + 8 * v25; // 0x140009178
int64_t v29 = v28 + v18; // 0x1400091a8
int64_t v30 = v8; // 0x140009195
int64_t v31 = v28;
int64_t v32 = *(int64_t *)v30; // 0x140009199
int64_t v33 = -1;
int64_t v34 = v33 + 1; // 0x14000919f
while (*(char *)(v34 + v32) != 0) {
// 0x14000919f
v33 = v34;
v34 = v33 + 1;
}
int64_t v35 = v33 + 2; // 0x1400091ab
while ((int32_t)function_14000ed50(v31, v29 - v31, v32, v35) == 0) {
// 0x1400091c5
*(int64_t *)(v30 + 0x100000000 * (v26 - v8) / 0x100000000) = v31;
v30 += 8;
if (v30 == v14) {
goto lab_0x1400091e5;
}
v31 += v35;
v32 = *(int64_t *)v30;
v33 = -1;
v34 = v33 + 1;
while (*(char *)(v34 + v32) != 0) {
// 0x14000919f
v33 = v34;
v34 = v33 + 1;
}
// 0x1400091a8
v35 = v33 + 2;
}
// 0x140009248
function_140006290(0, 0, 0, 0, 0);
__asm_int3();
__asm_int3();
__asm_int3();
return __asm_int3();
}
lab_0x1400091e5:
// 0x1400091e5
*v5 = v26;
v27 = 0;
}
// 0x1400091ee
_free_base(NULL);
v10 = v27;
v9 = v8;
goto lab_0x1400091f5;
lab_0x1400091f5:;
uint64_t v36 = v14 + 7 - v9; // 0x1400091fe
int64_t v37 = v9; // 0x140009210
if (v14 >= v9 && v36 >= 8) {
_free_base((int64_t *)*(int64_t *)v37);
int64_t v38 = 1; // 0x14000921a
int64_t v39 = v38; // 0x140009224
v37 += 8;
while (v38 != v36 / 8) {
// 0x140009212
_free_base((int64_t *)*(int64_t *)v37);
v38 = v39 + 1;
v39 = v38;
v37 += 8;
}
}
// 0x140009226
_free_base((int64_t *)v9);
// 0x140009230
return v10 & 0xffffffff;
}
// Address range: 0x140009260 - 0x1400093e8
int64_t function_140009260(int64_t a1, int32_t a2, int32_t a3, int128_t * a4) {
int64_t v1 = -1;
int64_t v2 = v1 + 1; // 0x14000928e
while (*(char *)(v2 + a1) != 0) {
// 0x14000928e
v1 = v2;
v2 = v1 + 1;
}
int64_t v3 = a3;
uint64_t v4 = v1 + 2; // 0x14000929f
if (v4 > -1 - v3) {
// 0x1400092ad
return 12;
}
int64_t v5 = v3 + 1 + v4; // 0x1400092ce
int64_t * v6 = _calloc_base((int32_t)v5, 1); // 0x1400092d4
int64_t v7 = (int64_t)v6; // 0x1400092d4
if (a3 != 0) {
// 0x1400092e1
if ((int32_t)function_14000ed50(v7, v5, (int64_t)a2, v3) != 0) {
// 0x1400093d2
function_140006290(0, 0, 0, 0, 0);
__asm_int3();
return __asm_int3();
}
}
int64_t v8 = function_14000ed50(v7 + v3, v5 - v3, a1, v4); // 0x14000930a
int32_t v9 = v8; // 0x14000930f
if (v9 != 0) {
// 0x1400093d2
function_140006290(0, 0, 0, 0, 0);
__asm_int3();
return __asm_int3();
}
int64_t v10 = (int64_t)a4;
int64_t * v11 = (int64_t *)(v10 + 8); // 0x140009317
int64_t v12 = *v11; // 0x140009317
int64_t v13 = v8 + 8; // 0x14000931b
int64_t v14 = v13 & 0xffffffff; // 0x14000931b
int64_t * v15 = (int64_t *)(v10 + 16); // 0x14000931f
int64_t v16 = *v15; // 0x14000931f
int64_t v17 = v12; // 0x140009326
if (v12 != v16) {
goto lab_0x1400093c9;
} else {
if (v4 != 0) {
int64_t v18 = v16 - v4; // 0x14000935c
int64_t v19 = v18 / 8; // 0x140009369
if (v19 < 0x7fffffffffffffff) {
int64_t v20 = function_14000b718(v4, 2 * v19, v14); // 0x14000937f
if (v20 != 0) {
// 0x1400093ab
*(int64_t *)a4 = v20;
*v11 = v20 + (v18 & -8);
*v15 = v20 + 16 * v19;
_free_base(NULL);
v17 = *v11;
goto lab_0x1400093c9;
} else {
// 0x140009389
_free_base(NULL);
goto lab_0x140009390;
}
} else {
goto lab_0x140009390;
}
} else {
// 0x140009331
*(int64_t *)a4 = (int64_t)_calloc_base(v9 + 4, (int32_t)v13);
_free_base(NULL);
goto lab_0x140009390;
}
}
lab_0x1400093c9:
// 0x1400093c9
*(int64_t *)v17 = v7;
*v11 = *v11 + v14;
// 0x14000939d
_free_base(NULL);
// 0x1400092ad
return 0;
lab_0x140009390:
// 0x140009390
_free_base(v6);
// 0x14000939d
_free_base(NULL);
// 0x1400092ad
return 12;
}
// Address range: 0x1400093e8 - 0x1400096f6
int64_t function_1400093e8(int64_t a1, int64_t a2, int128_t * a3, int64_t a4) {
int64_t v1 = a2; // 0x14000942b
if (a2 != a1) {
unsigned char v2 = *(char *)a2 - 47; // 0x14000942f
if (v2 < 46) {
// 0x140009435
if ((1 << (int64_t)(v2 & 63) & 0x200000000801) != 0) {
// break -> 0x14000944f
break;
}
}
int64_t v3 = function_14000f298(a1, a2, (int64_t)a3); // 0x140009442
v1 = v3;
while (v3 != a1) {
int64_t v4 = v3;
v2 = *(char *)v4 - 47;
if (v2 < 46) {
// 0x140009435
v1 = v4;
if ((1 << (int64_t)(v2 & 63) & 0x200000000801) != 0) {
// break -> 0x14000944f
break;
}
}
// 0x14000943f
v3 = function_14000f298(a1, v4, (int64_t)a3);
v1 = v3;
}
}
int64_t v5 = v1;
if (!((v5 == a1 + 1 | *(char *)v5 != 58))) {
// 0x140009461
function_140009260(a1, 0, 0, a3);
// 0x1400096cc
return function_140011ed0(g29);
}
int64_t v6 = 0; // bp-712, 0x140009494
int64_t v7; // bp-824, 0x1400093e8
function_14000331c(&v7, 0);
int64_t v8; // 0x1400093e8
char v9; // 0x1400093e8
int64_t v10; // 0x1400093e8
if (*(int32_t *)(v10 + 12) != 0xfde9) {
// 0x1400094ec
if ((int32_t)__acrt_AreFileApisANSI() != 0) {
// 0x140009510
v8 = 0;
if (v9 != 0) {
int32_t * v11 = (int32_t *)(v7 + 936); // 0x14000951c
*v11 = *v11 & -3;
v8 = 0;
}
} else {
// 0x1400094f5
v8 = 1;
if (v9 != 0) {
int32_t * v12 = (int32_t *)(v7 + 936); // 0x140009501
*v12 = *v12 & -3;
v8 = 1;
}
}
} else {
// 0x1400094d4
v8 = 0xfde9;
if (v9 != 0) {
int32_t * v13 = (int32_t *)(v7 + 936); // 0x1400094e0
*v13 = *v13 & -3;
v8 = 0xfde9;
}
}
// 0x140009526
function_140008d50(a1, &v6, v8, a4);
int64_t lpFindFileData; // bp-664, 0x1400093e8
if (FindFirstFileExW(NULL, 0, &lpFindFileData, 0, NULL, 0) == (int64_t *)-1) {
// 0x14000955d
function_140009260(a1, 0, 0, a3);
// 0x1400096cc
return function_140011ed0(g29);
}
int64_t v14 = 0; // bp-760, 0x140009583
int64_t v15; // bp-792, 0x1400093e8
function_14000331c(&v15, 0);
int64_t v16; // bp-620, 0x1400093e8
char v17; // 0x1400093e8
int64_t v18; // 0x1400093e8
if (*(int32_t *)(v18 + 12) == 0xfde9) {
// 0x1400095b2
if (v17 != 0) {
int32_t * v19 = (int32_t *)(v15 + 936); // 0x1400095be
*v19 = *v19 & -3;
}
// 0x140009604
function_140008ec8(&v16, &v14, 0xfde9, 0);
abort();
// UNREACHABLE
}
// 0x1400095ca
int64_t v20; // 0x1400093e8
if ((int32_t)__acrt_AreFileApisANSI() != 0) {
// 0x1400095ee
v20 = 0;
if (v17 != 0) {
int32_t * v21 = (int32_t *)(v15 + 936); // 0x1400095fa
*v21 = *v21 & -3;
v20 = 0;
}
} else {
// 0x1400095d3
v20 = 1;
if (v17 != 0) {
int32_t * v22 = (int32_t *)(v15 + 936); // 0x1400095df
*v22 = *v22 & -3;
v20 = 1;
}
}
// 0x140009604
function_140008ec8(&v16, &v14, v20, 0);
abort();
// UNREACHABLE
}
// Address range: 0x1400096f8 - 0x1400096fd
int64_t function_1400096f8(int64_t a1, int64_t * a2) {
// 0x1400096f8
return function_140009054(a1, (int64_t)a2);
}
// Address range: 0x140009700 - 0x140009811
int64_t function_140009700(int64_t * a1, int64_t * a2, int32_t a3, int64_t a4) {
int64_t v1 = (int64_t)a2;
if (a1 == NULL) {
char * v2 = (char *)(v1 + 40); // 0x140009724
if (*v2 != 0) {
// 0x140009729
*v2 = 0;
}
// 0x14000972c
*(int64_t *)(v1 + 16) = 0;
*(int64_t *)(v1 + 24) = 0;
// 0x140009734
*(int64_t *)(v1 + 32) = 0;
// 0x1400097fa
return 0;
}
char * v3; // 0x140009700
int64_t * v4; // 0x140009700
int64_t v5; // 0x140009700
int64_t v6; // 0x140009700
int64_t v7; // 0x140009700
if ((int16_t)v6 != 0) {
// 0x140009772
v7 = (int64_t)a1;
int64_t v8 = function_14000a47c(a3, 0, v7, -1, 0, 0); // 0x140009790
int64_t v9 = 0x100000000 * v8 / 0x100000000; // 0x140009795
v5 = v9;
if ((int32_t)v8 != 0) {
int64_t * v10 = (int64_t *)(v1 + 24);
uint64_t v11 = *v10; // 0x1400097b2
if (v9 > v11) {
char * v12 = (char *)(v1 + 40);
v4 = v10;
v3 = v12;
if (*v12 != 0) {
// 0x1400097c0
*v12 = 0;
v4 = v10;
v3 = v12;
}
goto lab_0x140009750;
} else {
int64_t v13 = function_14000a47c(a3, 0, v7, -1, *(int64_t *)(v1 + 16), (int32_t)v11); // 0x1400097e7
v5 = 0;
if ((int32_t)v13 != 0) {
// 0x1400097f3
*(int64_t *)(v1 + 32) = 0x100000000 * v13 / 0x100000000 - 1;
// 0x1400097fa
return 0;
}
goto lab_0x14000979c;
}
} else {
goto lab_0x14000979c;
}
} else {
int64_t * v14 = (int64_t *)(v1 + 24);
if (*v14 != 0) {
// 0x14000976a
*(char *)*(int64_t *)(v1 + 16) = 0;
// 0x140009734
*(int64_t *)(v1 + 32) = 0;
// 0x1400097fa
return 0;
}
char * v15 = (char *)(v1 + 40);
v4 = v14;
v3 = v15;
if (*v15 != 0) {
// 0x14000974d
*v15 = 0;
v4 = v14;
v3 = v15;
}
goto lab_0x140009750;
}
lab_0x14000979c:
// 0x14000979c
__acrt_errno_map_os_error((int64_t)GetLastError(), v5, v7);
// 0x1400097fa
return (int64_t)*_errno();
lab_0x140009750:
// 0x140009750
*_errno() = 34;
*v3 = 0;
*v4 = 0;
// 0x1400097fa
return 34;
}
// Address range: 0x140009814 - 0x140009932
int64_t function_140009814(int32_t hModule, int64_t a2, int64_t a3) {
// 0x140009814
int64_t lpFilename; // bp-552, 0x140009814
int32_t v1 = GetModuleFileNameW((int64_t *)(int64_t)hModule, (int16_t *)&lpFilename, 261); // 0x140009850
if (v1 == 0) {
// 0x14000985a
__acrt_errno_map_os_error((int64_t)GetLastError(), (int64_t)&lpFilename, 261);
// 0x14000990e
return function_140011ed0(g29);
}
int64_t v2 = a2; // bp-600, 0x14000987c
int64_t v3; // bp-632, 0x140009814
function_14000331c(&v3, 0);
int64_t v4; // 0x140009814
char v5; // 0x140009814
int64_t v6; // 0x140009814
if (*(int32_t *)(v6 + 12) == 0xfde9) {
// 0x1400098ad
if (v5 != 0) {
int32_t * v7 = (int32_t *)(v3 + 936); // 0x1400098b9
*v7 = *v7 & -3;
}
// 0x1400098fb
function_140009700(&lpFilename, &v2, 0xfde9, v4);
// 0x14000990e
return function_140011ed0(g29);
}
int64_t v8 = __acrt_AreFileApisANSI(); // 0x1400098c2
int32_t v9; // 0x140009814
if ((int32_t)v8 != 0) {
// 0x1400098e5
v9 = 0;
if (v5 != 0) {
int32_t * v10 = (int32_t *)(v3 + 936); // 0x1400098f1
*v10 = *v10 & -3;
v9 = 0;
}
} else {
// 0x1400098cb
v9 = 1;
if (v5 != (char)v8) {
int32_t * v11 = (int32_t *)(v3 + 936); // 0x1400098d6
*v11 = *v11 & -3;
v9 = 1;
}
}
// 0x1400098fb
function_140009700(&lpFilename, &v2, v9, v4);
// 0x14000990e
return function_140011ed0(g29);
}
// Address range: 0x140009934 - 0x140009aee
int64_t function_140009934(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t a5, int64_t a6, int64_t * a7, int64_t * a8) {
int64_t v1 = (int64_t)a4;
int64_t v2 = v1;
int64_t v3 = (int64_t)a3;
int64_t v4 = (int64_t)a2;
__acrt_lock((int32_t)v4);
int64_t v5 = (int64_t)g91; // 0x140009962
int64_t v6 = v4; // 0x14000996c
int64_t v7 = v3; // 0x14000996c
if (g91 == NULL) {
goto lab_0x1400099dd;
} else {
int64_t v8 = *(int64_t *)(v3 + 136) + 24; // 0x14000995e
if (v8 == 0) {
// 0x1400099d0
function_140001e50((int64_t *)g91, 0, 257, v1);
v6 = 0;
v7 = 257;
goto lab_0x1400099dd;
} else {
// 0x140009973
v2 = 2;
int64_t v9 = 2; // 0x14000997c
__asm_movups_10(*(int128_t *)v5, __asm_movups(*(int128_t *)v8));
__asm_movups_10(*(int128_t *)(v5 + 16), __asm_movups(*(int128_t *)(v8 + 16)));
__asm_movups_10(*(int128_t *)(v5 + 32), __asm_movups(*(int128_t *)(v8 + 32)));
__asm_movups_10(*(int128_t *)(v5 + 48), __asm_movups(*(int128_t *)(v8 + 48)));
__asm_movups_10(*(int128_t *)(v5 + 64), __asm_movups(*(int128_t *)(v8 + 64)));
__asm_movups_10(*(int128_t *)(v5 + 80), __asm_movups(*(int128_t *)(v8 + 80)));
__asm_movups_10(*(int128_t *)(v5 + 96), __asm_movups(*(int128_t *)(v8 + 96)));
int64_t v10 = v5 + 128; // 0x1400099b6
__asm_movups_10(*(int128_t *)(v5 + 112), __asm_movups(*(int128_t *)(v8 + 112)));
int64_t v11 = v8 + 128; // 0x1400099c1
v9--;
int64_t v12 = v11; // 0x1400099c8
int64_t v13 = v10; // 0x1400099c8
while (v9 != 0) {
// 0x140009980
__asm_movups_10(*(int128_t *)v13, __asm_movups(*(int128_t *)v12));
int128_t v14 = __asm_movups(*(int128_t *)(v12 + 16)); // 0x140009986
__asm_movups_10(*(int128_t *)(v13 + 16), v14);
int128_t v15 = __asm_movups(*(int128_t *)(v12 + 32)); // 0x14000998e
__asm_movups_10(*(int128_t *)(v13 + 32), v15);
int128_t v16 = __asm_movups(*(int128_t *)(v12 + 48)); // 0x140009996
__asm_movups_10(*(int128_t *)(v13 + 48), v16);
int128_t v17 = __asm_movups(*(int128_t *)(v12 + 64)); // 0x14000999e
__asm_movups_10(*(int128_t *)(v13 + 64), v17);
int128_t v18 = __asm_movups(*(int128_t *)(v12 + 80)); // 0x1400099a6
__asm_movups_10(*(int128_t *)(v13 + 80), v18);
int128_t v19 = __asm_movups(*(int128_t *)(v12 + 96)); // 0x1400099ae
__asm_movups_10(*(int128_t *)(v13 + 96), v19);
v10 = v13 + 128;
int128_t v20 = __asm_movups(*(int128_t *)(v12 + 112)); // 0x1400099b9
__asm_movups_10(*(int128_t *)(v13 + 112), v20);
v11 = v12 + 128;
v9--;
v12 = v11;
v13 = v10;
}
// 0x1400099ca
v2 = 0;
*(char *)v10 = *(char *)v11;
goto lab_0x1400099f7;
}
}
lab_0x1400099dd:
// 0x1400099dd
*_errno() = 22;
function_140006270(v5, v6, v7, v1);
goto lab_0x1400099f7;
lab_0x1400099f7:;
int64_t v21 = (int64_t)g92; // 0x140009a0a
int64_t v22; // 0x140009934
int64_t v23; // 0x140009934
int64_t v24; // 0x140009934
int64_t v25; // 0x140009a6f
if (g92 == NULL) {
// 0x1400099f7
v25 = v2;
v22 = 128;
v23 = 2;
goto lab_0x140009a74;
} else {
int64_t v26 = *(int64_t *)138 + 281; // 0x140009a04
int64_t v27 = v26; // 0x140009a19
int64_t v28 = v21; // 0x140009a19
if (v26 == 0) {
// 0x140009a67
v25 = v2;
function_140001e50((int64_t *)g92, 0, 256, v25);
v22 = 0;
v23 = 256;
goto lab_0x140009a74;
} else {
__asm_movups_10(*(int128_t *)v28, __asm_movups(*(int128_t *)v27));
int128_t v29 = __asm_movups(*(int128_t *)(v27 + 16)); // 0x140009a21
__asm_movups_10(*(int128_t *)(v28 + 16), v29);
int128_t v30 = __asm_movups(*(int128_t *)(v27 + 32)); // 0x140009a29
__asm_movups_10(*(int128_t *)(v28 + 32), v30);
int128_t v31 = __asm_movups(*(int128_t *)(v27 + 48)); // 0x140009a31
__asm_movups_10(*(int128_t *)(v28 + 48), v31);
int128_t v32 = __asm_movups(*(int128_t *)(v27 + 64)); // 0x140009a39
__asm_movups_10(*(int128_t *)(v28 + 64), v32);
int128_t v33 = __asm_movups(*(int128_t *)(v27 + 80)); // 0x140009a41
__asm_movups_10(*(int128_t *)(v28 + 80), v33);
int128_t v34 = __asm_movups(*(int128_t *)(v27 + 96)); // 0x140009a49
__asm_movups_10(*(int128_t *)(v28 + 96), v34);
int128_t v35 = __asm_movups(*(int128_t *)(v27 + 112)); // 0x140009a54
__asm_movups_10(*(int128_t *)(v28 + 112), v35);
int64_t v36 = 1; // 0x140009a5f
v27 += 128;
v28 += 128;
int64_t v37 = v36; // 0x140009a63
v24 = 0;
while (v36 != 0) {
// 0x140009a1b
__asm_movups_10(*(int128_t *)v28, __asm_movups(*(int128_t *)v27));
v29 = __asm_movups(*(int128_t *)(v27 + 16));
__asm_movups_10(*(int128_t *)(v28 + 16), v29);
v30 = __asm_movups(*(int128_t *)(v27 + 32));
__asm_movups_10(*(int128_t *)(v28 + 32), v30);
v31 = __asm_movups(*(int128_t *)(v27 + 48));
__asm_movups_10(*(int128_t *)(v28 + 48), v31);
v32 = __asm_movups(*(int128_t *)(v27 + 64));
__asm_movups_10(*(int128_t *)(v28 + 64), v32);
v33 = __asm_movups(*(int128_t *)(v27 + 80));
__asm_movups_10(*(int128_t *)(v28 + 80), v33);
v34 = __asm_movups(*(int128_t *)(v27 + 96));
__asm_movups_10(*(int128_t *)(v28 + 96), v34);
v35 = __asm_movups(*(int128_t *)(v27 + 112));
__asm_movups_10(*(int128_t *)(v28 + 112), v35);
v36 = v37 - 1;
v27 += 128;
v28 += 128;
v37 = v36;
v24 = 0;
}
goto lab_0x140009a84;
}
}
lab_0x140009a74:
// 0x140009a74
*_errno() = 22;
function_140006270(v21, v22, v23, v25);
v24 = v23;
goto lab_0x140009a84;
lab_0x140009a84:;
int64_t * v38 = (int64_t *)(v3 + 8); // 0x140009a84
int32_t * v39 = (int32_t *)*(int64_t *)*(int64_t *)*v38; // 0x140009a91
int32_t v40 = *v39; // 0x140009a91
*v39 = v40 - 1;
if (v40 == 1) {
int64_t v41 = *(int64_t *)*(int64_t *)*v38; // 0x140009aa8
if (v41 != (int64_t)&g39) {
// 0x140009aad
_free_base((int64_t *)v41);
}
}
int64_t * v42 = (int64_t *)(v24 + 136); // 0x140009ac2
*(int64_t *)*(int64_t *)*v38 = *v42;
int32_t * v43 = (int32_t *)*v42; // 0x140009ad9
*v43 = *v43 + 1;
return __acrt_lock2(*(int32_t *)&v2, v24);
}
// Address range: 0x140009c00 - 0x140009de1
int64_t function_140009c00(int64_t a1) {
int32_t * v1 = (int32_t *)(a1 + 4); // 0x140009c2e
int32_t CodePage = *v1; // 0x140009c2e
if (CodePage != 0xfde9) {
// 0x140009c3d
int64_t lpCPInfo; // bp-1848, 0x140009c00
if (GetCPInfo(CodePage, (struct _cpinfo *)&lpCPInfo)) {
// 0x140009c50
int64_t v2; // bp-1672, 0x140009c00
int64_t v3 = &v2; // 0x140009c0b
int64_t v4 = 0; // 0x140009c57
int64_t v5; // bp-1816, 0x140009c00
int64_t v6 = &v5; // 0x140009c57
*(char *)v6 = (char)v4;
int64_t v7 = v4 + 1; // 0x140009c5e
v4 = v7 & 0xffffffff;
v6++;
while ((int32_t)v7 < 256) {
// 0x140009c5c
*(char *)v6 = (char)v4;
v7 = v4 + 1;
v4 = v7 & 0xffffffff;
v6++;
}
// 0x140009c67
v5 = 32;
char v8; // bp-1842, 0x140009c00
if (v8 != 0) {
int64_t v9 = &v8; // 0x140009c91
unsigned char v10 = *(char *)(v9 + 1); // 0x140009c77
int64_t v11; // bp-1928, 0x140009c00
int64_t v12; // 0x140009c00
int64_t v13; // 0x140009c8a
uint32_t v14; // 0x140009c8c
if (v8 <= v10) {
// 0x140009c85
v12 = v8;
*(char *)((int64_t)&v11 + 112 + v12) = 32;
v13 = v12 + 1;
v14 = (int32_t)v13;
v12 = v13 & 0xffffffff;
while (v14 <= (int32_t)v10 && v14 < 256) {
// 0x140009c85
*(char *)((int64_t)&v11 + 112 + v12) = 32;
v13 = v12 + 1;
v14 = (int32_t)v13;
v12 = v13 & 0xffffffff;
}
}
// 0x140009c91
v9 += 2;
char v15 = *(char *)v9; // 0x140009c95
while (v15 != 0) {
unsigned char v16 = v15;
v10 = *(char *)(v9 + 1);
if (v16 <= v10) {
// 0x140009c85
v12 = v16;
*(char *)((int64_t)&v11 + 112 + v12) = 32;
v13 = v12 + 1;
v14 = (int32_t)v13;
v12 = v13 & 0xffffffff;
while (v14 <= (int32_t)v10 && v14 < 256) {
// 0x140009c85
*(char *)((int64_t)&v11 + 112 + v12) = 32;
v13 = v12 + 1;
v14 = (int32_t)v13;
v12 = v13 & 0xffffffff;
}
}
// 0x140009c91
v9 += 2;
v15 = *(char *)v9;
}
}
// 0x140009c9b
int64_t v17; // bp-1048, 0x140009c00
function_14000b17c(0, 1, &v5, 256, &v17, (int64_t)*v1, 0);
int32_t v18 = *v1; // 0x140009cd1
int64_t * v19 = (int64_t *)(a1 + 544); // 0x140009cd7
int64_t v20 = *v19; // 0x140009cd7
int64_t v21; // bp-1560, 0x140009c00
__acrt_LCMapStringA(0, v20, 256, &v5, 256, &v21, 256, (int64_t)v18, 0);
int32_t v22 = *v1; // 0x140009d04
int64_t v23 = *v19; // 0x140009d0d
int64_t v24; // bp-1304, 0x140009c00
__acrt_LCMapStringA(0, v23, 512, &v5, 256, &v24, 256, (int64_t)v22, 0);
int64_t v25 = a1 + 24;
int64_t v26 = &v17; // 0x140009d38
int64_t v27 = 256; // 0x140009d38
int64_t v28 = 1;
char v29 = *(char *)v26; // 0x140009d3f
char v30; // 0x140009c00
char * v31; // 0x140009d44
char * v32; // 0x140009d54
if ((v29 & 1) == 0) {
// 0x140009d4f
v30 = 0;
if ((v29 & 2) != 0) {
// 0x140009d54
v32 = (char *)(v28 + v25);
*v32 = *v32 | 32;
v30 = *(char *)(v28 + v3 + 367);
}
} else {
// 0x140009d44
v31 = (char *)(v28 + v25);
*v31 = *v31 | 16;
v30 = *(char *)(v28 + v3 + 111);
}
// 0x140009d64
*(char *)(a1 + 280 + v28) = v30;
v27--;
int64_t v33 = v28 + 1; // 0x140009d76
v26 += 2;
while (v27 != 0) {
// 0x140009d3f
v28 = v33;
v29 = *(char *)v26;
if ((v29 & 1) == 0) {
// 0x140009d4f
v30 = 0;
if ((v29 & 2) != 0) {
// 0x140009d54
v32 = (char *)(v28 + v25);
*v32 = *v32 | 32;
v30 = *(char *)(v28 + v3 + 367);
}
} else {
// 0x140009d44
v31 = (char *)(v28 + v25);
*v31 = *v31 | 16;
v30 = *(char *)(v28 + v3 + 111);
}
// 0x140009d64
*(char *)(a1 + 280 + v28) = v30;
v27--;
v33 = v28 + 1;
v26 += 2;
}
// 0x140009dbd
return function_140011ed0(g29);
}
}
int64_t v34 = a1 + 24;
int64_t v35 = 0;
int64_t v36 = 1;
int32_t v37 = v35;
int64_t v38; // 0x140009c00
char * v39; // 0x140009d91
char * v40; // 0x140009da1
if (v37 < 91) {
// 0x140009d91
v39 = (char *)(v36 + v34);
*v39 = *v39 | 16;
v38 = v35 + 32 & 0xffffffff;
} else {
// 0x140009d9b
v38 = 0;
if (v37 < 123) {
// 0x140009da1
v40 = (char *)(v36 + v34);
*v40 = *v40 | 32;
v38 = v35 + 0xffffffe0 & 0xffffffff;
}
}
// 0x140009dad
*(char *)(a1 + 280 + v36) = (char)v38;
int64_t v41 = v35 + 1; // 0x140009db4
int64_t v42 = v36 + 1; // 0x140009dbb
while ((int32_t)v41 < 256) {
// 0x140009d84
v35 = v41 & 0xffffffff;
v36 = v42;
v37 = v35;
if (v37 < 91) {
// 0x140009d91
v39 = (char *)(v36 + v34);
*v39 = *v39 | 16;
v38 = v35 + 32 & 0xffffffff;
} else {
// 0x140009d9b
v38 = 0;
if (v37 < 123) {
// 0x140009da1
v40 = (char *)(v36 + v34);
*v40 = *v40 | 32;
v38 = v35 + 0xffffffe0 & 0xffffffff;
}
}
// 0x140009dad
*(char *)(a1 + 280 + v36) = (char)v38;
v41 = v35 + 1;
v42 = v36 + 1;
}
// 0x140009dbd
return function_140011ed0(g29);
}
// Address range: 0x140009de4 - 0x140009fa2
int64_t function_140009de4(int64_t a1, int64_t a2, int64_t a3, int64_t a4) {
int64_t v1 = a4; // bp+32, 0x140009de9
int64_t v2 = a3; // bp+24, 0x140009dee
function_140009fa4(a3, a4);
_3f_getSystemCP_40__40_YAHH_40_Z((int32_t)&g113);
int64_t * v3 = (int64_t *)(a3 + 136);
if (*(int32_t *)(*v3 + 4) == (int32_t)&g113) {
// 0x140009ee6
return 0;
}
int64_t * v4 = _malloc_base(552); // 0x140009e33
int64_t * v5 = NULL; // 0x140009e3e
int64_t result = 0xffffffff; // 0x140009e3e
if (v4 != NULL) {
int64_t v6 = (int64_t)v4; // 0x140009e33
int64_t v7 = 4; // 0x140009e57
int64_t v8 = v6;
int64_t v9 = *v3;
__asm_movups_10(*(int128_t *)v8, __asm_movups(*(int128_t *)v9));
int128_t v10 = __asm_movups(*(int128_t *)(v9 + 16)); // 0x140009e61
__asm_movups_10(*(int128_t *)(v8 + 16), v10);
int128_t v11 = __asm_movups(*(int128_t *)(v9 + 32)); // 0x140009e69
__asm_movups_10(*(int128_t *)(v8 + 32), v11);
int128_t v12 = __asm_movups(*(int128_t *)(v9 + 48)); // 0x140009e71
__asm_movups_10(*(int128_t *)(v8 + 48), v12);
int128_t v13 = __asm_movups(*(int128_t *)(v9 + 64)); // 0x140009e79
__asm_movups_10(*(int128_t *)(v8 + 64), v13);
int128_t v14 = __asm_movups(*(int128_t *)(v9 + 80)); // 0x140009e81
__asm_movups_10(*(int128_t *)(v8 + 80), v14);
int128_t v15 = __asm_movups(*(int128_t *)(v9 + 96)); // 0x140009e89
__asm_movups_10(*(int128_t *)(v8 + 96), v15);
int64_t v16 = v8 + 128; // 0x140009e91
int128_t v17 = __asm_movups(*(int128_t *)(v9 + 112)); // 0x140009e94
int64_t v18 = v9 + 128; // 0x140009e98
__asm_movups_10(*(int128_t *)(v8 + 112), v17);
v7--;
while (v7 != 0) {
// 0x140009e5b
v8 = v16;
v9 = v18;
__asm_movups_10(*(int128_t *)v8, __asm_movups(*(int128_t *)v9));
v10 = __asm_movups(*(int128_t *)(v9 + 16));
__asm_movups_10(*(int128_t *)(v8 + 16), v10);
v11 = __asm_movups(*(int128_t *)(v9 + 32));
__asm_movups_10(*(int128_t *)(v8 + 32), v11);
v12 = __asm_movups(*(int128_t *)(v9 + 48));
__asm_movups_10(*(int128_t *)(v8 + 48), v12);
v13 = __asm_movups(*(int128_t *)(v9 + 64));
__asm_movups_10(*(int128_t *)(v8 + 64), v13);
v14 = __asm_movups(*(int128_t *)(v9 + 80));
__asm_movups_10(*(int128_t *)(v8 + 80), v14);
v15 = __asm_movups(*(int128_t *)(v9 + 96));
__asm_movups_10(*(int128_t *)(v8 + 96), v15);
v16 = v8 + 128;
v17 = __asm_movups(*(int128_t *)(v9 + 112));
v18 = v9 + 128;
__asm_movups_10(*(int128_t *)(v8 + 112), v17);
v7--;
}
// 0x140009ea5
__asm_movups_10(*(int128_t *)v16, __asm_movups(*(int128_t *)v18));
int128_t v19 = __asm_movups(*(int128_t *)(v9 + 144)); // 0x140009eab
__asm_movups_10(*(int128_t *)(v8 + 144), v19);
*(int64_t *)(v8 + 160) = *(int64_t *)(v9 + 160);
*(int32_t *)v4 = 0;
int64_t v20 = function_14000a0d8((int64_t)(int32_t)&g113, v6); // 0x140009ec2
if ((int32_t)v20 != -1) {
if ((char)a2 == 0) {
// 0x140009ef8
function_1400054d4();
}
int32_t * v21 = (int32_t *)*(int64_t *)(v2 + 136); // 0x140009f0b
int32_t v22 = *v21; // 0x140009f0b
*v21 = v22 - 1;
if (v22 == 1) {
int64_t v23 = *(int64_t *)(v2 + 136); // 0x140009f18
if (v23 != (int64_t)&g39) {
// 0x140009f2b
_free_base((int64_t *)v23);
}
}
int64_t v24 = v20 & 0xffffffff; // 0x140009ec7
*(int32_t *)v4 = 1;
*(int64_t *)(v2 + 136) = v6;
v5 = NULL;
result = v24;
if ((g43 & *(int32_t *)(v2 + 936)) == 0) {
int64_t v25 = &v2; // bp-40, 0x140009f5c
int64_t v26 = 5; // bp-52, 0x140009f77
int64_t v27 = 5; // bp-48, 0x140009f7e
int64_t v28; // bp-56, 0x140009de4
function_140009934(&v28, &v27, &v25, &v26, 5, 5, &v2, &v1);
v5 = NULL;
result = v24;
if ((char)a2 != 0) {
// 0x140009f8f
*(int64_t *)&g38 = (int64_t)&v26;
v5 = NULL;
result = v24;
}
}
} else {
// 0x140009ece
*_errno() = 22;
v5 = v4;
result = 0xffffffff;
}
}
// 0x140009edc
_free_base(v5);
// 0x140009ee6
return result;
}
// Address range: 0x140009fa4 - 0x14000a05c
int64_t function_140009fa4(int64_t a1, int64_t a2) {
int64_t v1 = a2;
int64_t result; // 0x140009fa4
if ((*(int32_t *)(a1 + 936) & g43) == 0) {
goto lab_0x140009fda;
} else {
// 0x140009fc7
if (*(int64_t *)(a1 + 144) == 0) {
goto lab_0x140009fda;
} else {
// 0x140009fd1
result = *(int64_t *)(a1 + 136);
goto lab_0x14000a03e;
}
}
lab_0x140009fda:
// 0x140009fda
__acrt_lock(5);
int64_t * v2 = (int64_t *)(a1 + 136); // 0x140009fe5
int64_t v3 = *v2; // 0x140009fe5
int64_t v4 = a2; // 0x140009ff4
int64_t v5 = a2; // 0x140009ff4
if (v3 != a2) {
if (v3 != 0) {
int32_t * v6 = (int32_t *)v3; // 0x140009ffe
int32_t v7 = *v6; // 0x140009ffe
*v6 = v7 - 1;
if (v3 != (int64_t)&g39 && v7 == 1) {
// 0x14000a018
_free_base((int64_t *)v3);
}
}
// 0x14000a01d
*v2 = v1;
*(int32_t *)v1 = *(int32_t *)&v1 + 1;
v4 = v1;
v5 = v1;
}
// 0x14000a034
__acrt_lock2(5, v4);
result = v5;
goto lab_0x14000a03e;
lab_0x14000a03e:
// 0x14000a03e
if (result == 0) {
// 0x14000a056
return function_140005bc0();
}
// 0x14000a043
return result;
}
// Address range: 0x14000a0bc - 0x14000a0d8
int64_t function_14000a0bc(void) {
int64_t v1 = function_140007b44(); // 0x14000a0c0
return function_140009fa4(v1, (int64_t)&g93);
}
// Address range: 0x14000a0d8 - 0x14000a391
int64_t function_14000a0d8(int64_t a1, int64_t a2) {
// 0x14000a0d8
int64_t v1; // bp-120, 0x14000a0d8
_3f_getSystemCP_40__40_YAHH_40_Z((int32_t)(g29 ^ (int64_t)&v1));
int64_t v2 = (int64_t)&g41; // 0x14000a109
if (((int32_t)&g113 & (int32_t)&g113) == 0) {
lab_0x14000a362:
// 0x14000a362
_3f_setSBCS_40__40_YAXPEAU__crt_multibyte_data_40__40__40_Z((int64_t *)&g113);
// 0x14000a36c
return function_140011ed0(g29);
}
int64_t v3 = 0;
int64_t v4; // 0x14000a0d8
int32_t v5; // 0x14000a0d8
int64_t v6; // 0x14000a0d8
int64_t v7; // 0x14000a0d8
int64_t v8; // 0x14000a0d8
int64_t v9; // 0x14000a0d8
int32_t * v10; // 0x14000a1b3
int64_t * v11; // 0x14000a1b6
while (*(int32_t *)v2 != (int32_t)&g113) {
int64_t v12 = v3 + 1; // 0x14000a127
v2 += 48;
if ((int32_t)v12 >= 5) {
if ((int32_t)&g113 == 0xfde8) {
return function_140011ed0(g29);
} else {
// 0x14000a140
if (!IsValidCodePage((int32_t)&g113 & 0xffff)) {
return function_140011ed0(g29);
} else {
if ((int32_t)&g113 != 0xfde9) {
// 0x14000a188
int32_t lpCPInfo; // bp-88, 0x14000a0d8
if (!GetCPInfo((int32_t)&g113, (struct _cpinfo *)&lpCPInfo)) {
// 0x14000a261
if (g94 != 0) {
goto lab_0x14000a362;
} else {
return function_140011ed0(g29);
}
} else {
// 0x14000a19d
v9 = a2 + 24;
function_140001e50((int64_t *)v9, 0, 257, v8);
v10 = (int32_t *)(a2 + 4);
*v10 = (int32_t)&g113;
v11 = (int64_t *)(a2 + 544);
*v11 = 0;
v5 = 0;
if (lpCPInfo != 2) {
goto lab_0x14000a259;
} else {
char v13; // 0x14000a0d8
if (v13 == 0) {
// 0x14000a1fa
v4 = a2 + 26;
v7 = 254;
goto lab_0x14000a203;
} else {
// 0x14000a1ce
char v14; // bp-82, 0x14000a0d8
v6 = &v14;
goto lab_0x14000a1ce_2;
}
}
}
} else {
// 0x14000a15a
*(int64_t *)(a2 + 4) = 0xfde9;
*(int64_t *)(a2 + 544) = 0;
*(int32_t *)(a2 + 24) = 0;
*(int16_t *)(a2 + 28) = 0;
// 0x14000a16c
__asm_rep_stosd_memset((char *)(a2 + 12), 0, 6);
goto lab_0x14000a17b;
}
}
}
}
v3 = v12 & 0xffffffff;
}
int64_t v15 = a2 + 24;
function_140001e50((int64_t *)v15, 0, 257, v8);
int64_t v16 = 48 * v3; // 0x14000a29e
int64_t v17 = (int64_t)&g40;
int64_t v18 = v16 + (int64_t)&g42;
char v19 = *(char *)v18; // 0x14000a2a8
unsigned char v20; // 0x14000a2b2
int64_t v21; // 0x14000a0d8
int64_t v22; // 0x14000a0d8
int64_t v23; // 0x14000a0d8
int64_t v24; // 0x14000a0d8
char * v25; // 0x14000a0d8
char * v26; // 0x14000a2ad
unsigned char v27; // 0x14000a2ad
int64_t v28; // 0x14000a2e3
char v29; // 0x14000a2e7
int64_t v30; // 0x14000a2b2
int64_t v31; // 0x14000a2cf
char * v32; // 0x14000a2d2
if (v19 != 0) {
// 0x14000a2ad
v25 = (char *)v17;
v29 = v19;
v24 = v18;
v26 = (char *)(v24 + 1);
v27 = *v26;
while (v27 != 0) {
// 0x14000a2b2
v20 = v29;
if (v20 <= v27) {
// 0x14000a2bf
v30 = v20;
v23 = v30;
v22 = v30 + 1;
while ((int32_t)v22 < 257) {
// 0x14000a2cc
v31 = v23 + 1;
v32 = (char *)(v22 + v15);
*v32 = *v32 | *v25;
v23 = v31 & 0xffffffff;
v21 = v22 + 1 & 0xffffffff;
if ((int32_t)v31 > (int32_t)*v26) {
// break -> 0x14000a2e3
break;
}
v22 = v21;
}
}
// 0x14000a2e3
v28 = v24 + 2;
v29 = *(char *)v28;
if (v29 == 0) {
// break -> 0x14000a2eb
break;
}
v24 = v28;
v26 = (char *)(v24 + 1);
v27 = *v26;
}
}
int64_t v33 = v17 + 1; // 0x14000a2ef
int64_t v34 = v18 + 8; // 0x14000a2f5
while ((int32_t)v33 != (int32_t)&g40 + 4) {
// 0x14000a2a5
v17 = v33;
v18 = v34;
v19 = *(char *)v18;
if (v19 != 0) {
// 0x14000a2ad
v25 = (char *)v17;
v29 = v19;
v24 = v18;
v26 = (char *)(v24 + 1);
v27 = *v26;
while (v27 != 0) {
// 0x14000a2b2
v20 = v29;
if (v20 <= v27) {
// 0x14000a2bf
v30 = v20;
v23 = v30;
v22 = v30 + 1;
while ((int32_t)v22 < 257) {
// 0x14000a2cc
v31 = v23 + 1;
v32 = (char *)(v22 + v15);
*v32 = *v32 | *v25;
v23 = v31 & 0xffffffff;
v21 = v22 + 1 & 0xffffffff;
if ((int32_t)v31 > (int32_t)*v26) {
// break -> 0x14000a2e3
break;
}
v22 = v21;
}
}
// 0x14000a2e3
v28 = v24 + 2;
v29 = *(char *)v28;
if (v29 == 0) {
// break -> 0x14000a2eb
break;
}
v24 = v28;
v26 = (char *)(v24 + 1);
v27 = *v26;
}
}
// 0x14000a2eb
v33 = v17 + 1;
v34 = v18 + 8;
}
// 0x14000a2f7
*(int32_t *)(a2 + 4) = (int32_t)&g113;
*(int32_t *)(a2 + 8) = 1;
*(int64_t *)(a2 + 544) = (int32_t)&g113 == 932 | (int32_t)&g113 == 936 | (int32_t)&g113 == 949 ? (int32_t)&g113 == 932 | (int32_t)&g113 == 936 ? (int32_t)&g113 == 932 ? (int64_t)L"ja-JP" : (int64_t)L"zh-CN" : (int64_t)L"ko-KR" : (int32_t)&g113 != 950 ? 0 : (int64_t)L"zh-TW";
int64_t v35 = (int64_t)&g41 - 8 - a2 + v16; // 0x14000a34c
int64_t v36 = 6; // 0x14000a348
int64_t v37 = a2 + 12;
*(int16_t *)v37 = *(int16_t *)(v35 + v37);
v36--;
int64_t v38 = v37 + 2; // 0x14000a35b
while (v36 != 0) {
// 0x14000a34c
v37 = v38;
*(int16_t *)v37 = *(int16_t *)(v35 + v37);
v36--;
v38 = v37 + 2;
}
lab_0x14000a17b:
// 0x14000a17b
function_140009c00(a2);
// 0x14000a36c
return function_140011ed0(g29);
lab_0x14000a259:
// 0x14000a259
*(int32_t *)(a2 + 8) = v5;
// 0x14000a16c
__asm_rep_stosd_memset((char *)(a2 + 12), 0, 6);
goto lab_0x14000a17b;
lab_0x14000a203:;
char * v39 = (char *)v4; // 0x14000a203
*v39 = *v39 | 8;
int64_t v40 = v7 - 1; // 0x14000a209
v4++;
v7 = v40;
int64_t v41; // 0x14000a0d8
if (v40 != 0) {
goto lab_0x14000a203;
} else {
// 0x14000a20e
v41 = (int64_t)L"zh-CN";
switch (*v10) {
case 932: {
// 0x14000a247
v41 = (int64_t)L"ja-JP";
goto lab_0x14000a24e;
}
case 936: {
goto lab_0x14000a24e;
}
case 949: {
// 0x14000a235
v41 = (int64_t)L"ko-KR";
goto lab_0x14000a24e;
}
case 950: {
// 0x14000a22c
v41 = (int64_t)L"zh-TW";
goto lab_0x14000a24e;
}
default: {
// 0x14000a24e
v41 = 0;
goto lab_0x14000a24e;
}
}
}
lab_0x14000a1ce_2:;
unsigned char v42 = *(char *)(v6 + 1); // 0x14000a1ce
int64_t v43; // 0x14000a0d8
int64_t v44; // 0x14000a0d8
if (v42 == 0) {
// 0x14000a1fa
v4 = a2 + 26;
v7 = 254;
goto lab_0x14000a203;
} else {
unsigned char v45 = *(char *)v6; // 0x14000a1d7
if (v45 > v42) {
goto lab_0x14000a1f2;
} else {
int64_t v46 = v45; // 0x14000a1d7
v44 = (int64_t)v42 + 1 - v46 & 0xffffffff;
v43 = v46 + 1;
goto lab_0x14000a1e6;
}
}
lab_0x14000a24e:
// 0x14000a24e
*v11 = v41;
v5 = 1;
goto lab_0x14000a259;
lab_0x14000a1f2:;
int64_t v47 = v6 + 2; // 0x14000a1f2
v6 = v47;
if (*(char *)v47 != 0) {
goto lab_0x14000a1ce_2;
} else {
// 0x14000a1fa
v4 = a2 + 26;
v7 = 254;
goto lab_0x14000a203;
}
lab_0x14000a1e6:;
char * v48 = (char *)(v43 + v9); // 0x14000a1e6
*v48 = *v48 | 4;
int64_t v49 = v44 - 1; // 0x14000a1ed
v44 = v49;
v43 = v43 + 1 & 0xffffffff;
if (v49 != 0) {
goto lab_0x14000a1e6;
} else {
goto lab_0x14000a1f2;
}
}
// Address range: 0x14000a40c - 0x14000a41e
int64_t function_14000a40c(int64_t a1) {
// 0x14000a40c
_3f_x_ismbbtype_l_40__40_YAHPEAU__crt_locale_pointers_40__40_IHH_40_Z((int64_t *)&g113, (int32_t)&g113, (int32_t)&g113, (int32_t)&g113);
return &g113;
}
// Address range: 0x14000a420 - 0x14000a47a
int64_t function_14000a420(uint32_t CodePage, int64_t dwFlags) {
// 0x14000a420
int64_t cbMultiByte; // 0x14000a420
int64_t lpMultiByteStr; // 0x14000a420
int32_t result; // 0x14000a473
if (CodePage < 0xc436) {
uint32_t v1 = CodePage - 0xc42c; // 0x14000a428
if (v1 < 10) {
// 0x14000a433
if ((1 << (v1 & 31) & 679) == 0) {
// 0x14000a473
result = MultiByteToWideChar(CodePage, (int32_t)dwFlags, (char *)lpMultiByteStr, (int32_t)cbMultiByte, (int16_t *)&g113, (int32_t)&g113);
return result;
}
} else {
// 0x14000a43f
if (CodePage != 42) {
// 0x14000a473
result = MultiByteToWideChar(CodePage, (int32_t)dwFlags, (char *)lpMultiByteStr, (int32_t)cbMultiByte, (int16_t *)&g113, (int32_t)&g113);
return result;
}
}
// 0x14000a473
result = MultiByteToWideChar(CodePage, (int32_t)0, (char *)lpMultiByteStr, (int32_t)cbMultiByte, (int16_t *)&g113, (int32_t)&g113);
return result;
}
int64_t dwFlags2; // 0x14000a420
if (CodePage == 0xd698) {
// 0x14000a473
dwFlags2 = dwFlags & 8;
result = MultiByteToWideChar(CodePage, (int32_t)dwFlags2, (char *)lpMultiByteStr, (int32_t)cbMultiByte, (int16_t *)&g113, (int32_t)&g113);
return result;
}
// 0x14000a450
if (CodePage < 0xdeaa) {
// 0x14000a473
result = MultiByteToWideChar(CodePage, (int32_t)dwFlags, (char *)lpMultiByteStr, (int32_t)cbMultiByte, (int16_t *)&g113, (int32_t)&g113);
return result;
}
if (CodePage < 0xdeb4 || CodePage == 0xfde8) {
// 0x14000a473
result = MultiByteToWideChar(CodePage, (int32_t)0, (char *)lpMultiByteStr, (int32_t)cbMultiByte, (int16_t *)&g113, (int32_t)&g113);
return result;
}
// 0x14000a468
if (CodePage != 0xfde9) {
// 0x14000a473
result = MultiByteToWideChar(CodePage, (int32_t)dwFlags, (char *)lpMultiByteStr, (int32_t)cbMultiByte, (int16_t *)&g113, (int32_t)&g113);
return result;
}
// 0x14000a473
dwFlags2 = dwFlags & 8;
result = MultiByteToWideChar(CodePage, (int32_t)dwFlags2, (char *)lpMultiByteStr, (int32_t)cbMultiByte, (int16_t *)&g113, (int32_t)&g113);
return result;
}
// Address range: 0x14000a47c - 0x14000a529
int64_t function_14000a47c(uint32_t CodePage, int32_t a2, int64_t lpWideCharStr, int32_t cchWideChar, int64_t a5, int32_t a6) {
// 0x14000a47c
int32_t dwFlags; // 0x14000a47c
if (CodePage < 0xc436) {
uint32_t v1 = CodePage - 0xc42c; // 0x14000a49f
if (v1 < 10) {
// 0x14000a4aa
dwFlags = 0;
if ((1 << (v1 & 31) & 679) == 0) {
// 0x14000a4e3
dwFlags = a2 & -129;
goto lab_0x14000a4eb;
} else {
goto lab_0x14000a4eb;
}
} else {
// 0x14000a4e1
dwFlags = 0;
if (CodePage == 42) {
goto lab_0x14000a4eb;
} else {
// 0x14000a4e3
dwFlags = a2 & -129;
goto lab_0x14000a4eb;
}
}
} else {
// 0x14000a4bb
dwFlags = 0;
if (CodePage == 0xd698) {
goto lab_0x14000a4eb;
} else {
if (CodePage < 0xdeaa) {
// 0x14000a4e3
dwFlags = a2 & -129;
goto lab_0x14000a4eb;
} else {
// 0x14000a4cb
dwFlags = 0;
if (CodePage < 0xdeb4 || (CodePage & -2) == 0xfde8) {
goto lab_0x14000a4eb;
} else {
// 0x14000a4e3
dwFlags = a2 & -129;
goto lab_0x14000a4eb;
}
}
}
}
lab_0x14000a4eb:
// 0x14000a4eb
if ((CodePage || 1) == 0xfde9 && a6 != 0) {
// 0x14000a50a
*(int32_t *)(int64_t)a6 = 0;
}
// 0x14000a50c
int64_t lpMultiByteStr; // 0x14000a47c
int32_t result = WideCharToMultiByte(CodePage, dwFlags, (int16_t *)lpWideCharStr, cchWideChar, (char *)lpMultiByteStr, (int32_t)&g113, (char *)&g113, (bool *)&g113); // 0x14000a522
return result;
}
// Address range: 0x14000a52c - 0x14000a62d
int64_t function_14000a52c(int64_t a1, int64_t a2) {
int16_t * lpszEnvironmentBlock = GetEnvironmentStringsW(); // 0x14000a545
if (lpszEnvironmentBlock == NULL) {
// 0x14000a60f
return 0;
}
int64_t v1 = (int64_t)lpszEnvironmentBlock; // 0x14000a545
int64_t v2 = v1; // 0x14000a561
if (*lpszEnvironmentBlock != 0) {
int64_t v3 = -1; // 0x14000a563
v3++;
int64_t v4 = 2 * v3 + v1; // 0x14000a56a
while (*(int16_t *)v4 != 0) {
// 0x14000a567
v3++;
v4 = 2 * v3 + v1;
}
int64_t v5 = v4 + 2; // 0x14000a575
v2 = v5;
while (*(int16_t *)v5 != 0) {
// 0x14000a563
v3 = -1;
v3++;
v4 = 2 * v3 + v5;
while (*(int16_t *)v4 != 0) {
// 0x14000a567
v3++;
v4 = 2 * v3 + v5;
}
// 0x14000a571
v5 = v4 + 2;
v2 = v5;
}
}
int32_t v6 = (2 - v1 + v2) / 2; // 0x14000a596
int32_t v7 = function_14000a47c(0, 0, v1, v6, 0, 0);
if (v7 == 0) {
// 0x14000a606
FreeEnvironmentStringsW(lpszEnvironmentBlock);
// 0x14000a60f
return 0;
}
int64_t * v8 = _malloc_base(v7); // 0x14000a5b6
int64_t * v9; // 0x14000a52c
int64_t result; // 0x14000a52c
if (v8 == NULL) {
// 0x14000a5f1
result = 0;
v9 = v8;
goto lab_0x14000a5f4;
} else {
int64_t v10 = (int64_t)v8; // 0x14000a5b6
int64_t v11 = function_14000a47c(0, 0, v1, v6, v10, v7); // 0x14000a5e0
result = v10;
v9 = NULL;
if ((int32_t)v11 == 0) {
// 0x14000a5f1
result = 0;
v9 = v8;
goto lab_0x14000a5f4;
} else {
goto lab_0x14000a5f4;
}
}
lab_0x14000a5f4:
// 0x14000a5f4
_free_base(v9);
// 0x14000a606
FreeEnvironmentStringsW(lpszEnvironmentBlock);
// 0x14000a60f
return result;
}
// Address range: 0x14000a630 - 0x14000a950
int64_t function_14000a630(int64_t a1, int64_t a2) {
if (a1 == 0) {
// 0x14000a654
*_errno() = 22;
// 0x14000a923
return -1;
}
int64_t v1 = function_140012404(a1, 61); // 0x14000a670
int64_t v2; // 0x14000a630
int64_t v3; // 0x14000a630
int64_t v4; // 0x14000a630
int64_t v5; // 0x14000a630
int64_t v6; // 0x14000a698
char v7; // 0x14000a698
if (v1 == 0 || v1 == a1) {
// 0x14000a902
*_errno() = 22;
v5 = 0xffffffff;
v4 = a1;
goto lab_0x14000a919;
} else {
int64_t v8 = g67; // 0x14000a68a
v6 = v1 + 1;
v7 = *(char *)v6;
int64_t v9 = v8; // 0x14000a6a1
if (v8 == g69) {
// 0x14000a6a3
v9 = function_14000a950(v8);
g67 = v9;
}
// 0x14000a6b5
v3 = v9;
if (v9 != 0) {
goto lab_0x14000a779;
} else {
// 0x14000a6c4
if ((int32_t)a2 == 0 || g68 == 0) {
// 0x14000a707
v5 = 0;
v4 = a1;
if (v7 == 0) {
goto lab_0x14000a919;
} else {
// 0x14000a710
g67 = (int64_t)_calloc_base(1, 8);
_free_base(NULL);
v5 = 0xffffffff;
v4 = a1;
if (g67 != 0) {
// 0x14000a740
v2 = g67;
if (g68 != 0) {
goto lab_0x14000a774;
} else {
// 0x14000a749
g68 = (int64_t)_calloc_base(1, 8);
_free_base(NULL);
v5 = 0xffffffff;
v4 = a1;
if (g68 == 0) {
goto lab_0x14000a919;
} else {
// 0x14000a76d
v2 = g67;
goto lab_0x14000a774;
}
}
} else {
goto lab_0x14000a919;
}
}
} else {
// 0x14000a6d1
_3f__3f__24_common_get_or_create_environment_nolock_40_D_40__40_YAPEAPEADXZ();
int64_t v10 = g67; // 0x14000a6df
v2 = v10;
if (v10 == g69) {
int64_t v11 = function_14000a950(v10); // 0x14000a6f6
g67 = v11;
v2 = v11;
}
goto lab_0x14000a774;
}
}
}
lab_0x14000a7ac:;
// 0x14000a7ac
int64_t v12; // 0x14000a630
int64_t v13 = v12 + 8; // 0x14000a7ac
int64_t v14 = *(int64_t *)v13;
int64_t v15 = v14; // 0x14000a788
int64_t v16 = v13; // 0x14000a788
int64_t v17 = v13; // 0x14000a788
if (v14 == 0) {
// break -> 0x14000a7be
goto lab_0x14000a7be;
}
goto lab_0x14000a78a;
lab_0x14000a919:
// 0x14000a919
_free_base((int64_t *)v4);
// 0x14000a923
return v5 & 0xffffffff;
lab_0x14000a779:;
int64_t * v21 = (int64_t *)v3;
int64_t v22 = *v21;
v17 = v3;
int64_t v20; // 0x14000a630
if (v22 != 0) {
int64_t v18 = v1 - a1; // 0x14000a77f
v15 = v22;
v16 = v3;
while (true) {
lab_0x14000a78a:
// 0x14000a78a
v12 = v16;
if (_strnicmp((char *)a1, (char *)v15, (int32_t)v18) != 0) {
goto lab_0x14000a7ac;
} else {
// 0x14000a79c
int64_t v19; // 0x14000a79c
switch (*(char *)(v19 + v18)) {
case 61: {
// 0x14000a7b5
v20 = (v12 - v3) / 8;
goto lab_0x14000a7c8;
}
case 0: {
// 0x14000a7b5
v20 = (v12 - v3) / 8;
goto lab_0x14000a7c8;
}
default: {
goto lab_0x14000a7ac;
}
}
}
}
}
lab_0x14000a7be:
// 0x14000a7be
v20 = (v17 - v3) / -8;
goto lab_0x14000a7c8;
lab_0x14000a7c8:;
// 0x14000a7c8
int64_t v23; // 0x14000a630
if (v20 < 0) {
goto lab_0x14000a824;
} else {
// 0x14000a7cd
if (*v21 == 0) {
goto lab_0x14000a824;
} else {
int64_t v24 = 8 * v20;
int64_t * v25 = (int64_t *)(v24 + v3);
_free_base((int64_t *)*v25);
if (v7 == 0) {
int64_t v26 = v20; // 0x14000a7f9
if (*v25 != 0) {
int64_t v27 = v20; // 0x14000a7f2
*v25 = *(int64_t *)(v3 + 8 + v24);
v27++;
int64_t v28 = 8 * v27; // 0x14000a7f5
int64_t * v29 = (int64_t *)(v28 + v3); // 0x14000a7f5
v26 = v27;
while (*v29 != 0) {
// 0x14000a7e9
*v29 = *(int64_t *)(v3 + 8 + v28);
v27++;
v28 = 8 * v27;
v29 = (int64_t *)(v28 + v3);
v26 = v27;
}
}
int64_t v30 = function_14000b718(v3, v26, 8); // 0x14000a807
_free_base(NULL);
v23 = a1;
if (v30 != 0) {
// 0x14000a81b
g67 = v30;
v23 = a1;
}
} else {
// 0x14000a7e0
*v25 = a1;
v23 = 0;
}
goto lab_0x14000a881;
}
}
lab_0x14000a824:
// 0x14000a824
v5 = 0;
v4 = a1;
if (v7 == 0) {
goto lab_0x14000a919;
} else {
uint64_t v31 = -v20; // 0x14000a82d
uint64_t v32 = 2 - v20; // 0x14000a830
v5 = 0xffffffff;
v4 = a1;
if (v32 < v31 || v32 >= 0x1fffffffffffffff) {
goto lab_0x14000a919;
} else {
int64_t v33 = function_14000b718(v3, v32, 8); // 0x14000a85a
_free_base(NULL);
v5 = 0xffffffff;
v4 = a1;
if (v33 == 0) {
goto lab_0x14000a919;
} else {
int64_t v34 = v33 + 8 * v31;
*(int64_t *)v34 = a1;
*(int64_t *)(v34 + 8) = 0;
g67 = v33;
v23 = 0;
goto lab_0x14000a881;
}
}
}
lab_0x14000a774:
// 0x14000a774
v3 = v2;
v5 = 0xffffffff;
v4 = a1;
if (v2 == 0) {
goto lab_0x14000a919;
} else {
goto lab_0x14000a779;
}
lab_0x14000a881:
// 0x14000a881
v5 = 0;
v4 = v23;
if ((int32_t)a2 != 0) {
int64_t v35 = -1;
int64_t v36 = v35 + 1; // 0x14000a892
while (*(char *)(v36 + a1) != 0) {
// 0x14000a892
v35 = v36;
v36 = v35 + 1;
}
int64_t * v37 = _calloc_base((int32_t)v36 + 2, 1); // 0x14000a8a4
int64_t v38 = 0; // 0x14000a8af
if (v37 != NULL) {
// 0x14000a8b1
if (strcpy_s((char *)v37, (int32_t)v35 + 3, (char *)a1) != 0) {
// 0x14000a93b
function_140006290(0, 0, 0, 0, 0);
return __asm_int3();
}
int64_t v39 = (int64_t)v37; // 0x14000a8a4
int64_t v40 = v39 - a1; // 0x14000a8cb
*(char *)(v40 + v1) = 0;
v38 = 0;
if ((int32_t)function_14000f814(v39, v7 == 0 ? 0 : v40 + v6) == 0) {
// 0x14000a8eb
*_errno() = 42;
v38 = 0xffffffff;
}
}
// 0x14000a8f8
_free_base(v37);
v5 = v38;
v4 = v23;
}
goto lab_0x14000a919;
}
// Address range: 0x14000a950 - 0x14000aa38
int64_t function_14000a950(int64_t a1) {
int64_t result = 0; // 0x14000a96b
if (a1 == 0) {
lab_0x14000a96f:
// 0x14000a96f
return result;
}
int64_t * v1 = _calloc_base(1, 8); // 0x14000a9a4
if (v1 != NULL) {
// 0x14000a9b9
result = (int64_t)v1;
int64_t v2 = a1; // 0x14000a9bc
int64_t v3 = 0; // 0x14000a9c3
int64_t v4 = v3; // 0x14000a9ca
while (*(char *)(v3 + 1) != 0) {
// 0x14000a9c3
v3 = v4 + 1;
v4 = v3;
}
int32_t v5 = (int32_t)v3 + 1; // 0x14000a9d5
int64_t * v6 = _calloc_base(v5, 1); // 0x14000a9d5
int64_t * v7 = (int64_t *)(result - a1 + v2); // 0x14000a9dc
*v7 = (int64_t)v6;
_free_base(NULL);
int64_t v8 = *v7; // 0x14000a9e5
while (v8 != 0) {
// 0x14000a9ee
if (strcpy_s((char *)v8, v5, (char *)*(int64_t *)v2) != 0) {
// 0x14000aa19
function_140006290(0, 0, 0, 0, 0);
__asm_int3();
goto lab_0x14000aa2f;
}
// 0x14000a9fe
v2 += 8;
int64_t v9 = *(int64_t *)v2; // 0x14000aa02
if (v9 == 0) {
// 0x14000aa0a
_free_base(NULL);
return result;
}
v3 = 0;
v4 = v3;
while (*(char *)(v3 + v9) != 0) {
// 0x14000a9c3
v3 = v4 + 1;
v4 = v3;
}
// 0x14000a9cc
v5 = (int32_t)v3 + 1;
v6 = _calloc_base(v5, 1);
v7 = (int64_t *)(result - a1 + v2);
*v7 = (int64_t)v6;
_free_base(NULL);
v8 = *v7;
}
}
goto lab_0x14000aa2f;
lab_0x14000aa2f:
// 0x14000aa2f
function_140005bc0();
__asm_int3();
__asm_int3();
__asm_int3();
return __asm_int3();
}
// Address range: 0x14000aa38 - 0x14000aa3d
int64_t function_14000aa38(int64_t a1, int32_t a2) {
// 0x14000aa38
return function_14000a630(a1, (int64_t)a2);
}
// Address range: 0x14000aaf8 - 0x14000ab34
int64_t function_14000aaf8(void) {
int32_t v1 = 0; // 0x14000ab00
if (*(int32_t *)(*(int64_t *)(__readgsqword(96) + 32) + 8) >= 0) {
// 0x14000ab16
__acrt_AppPolicyGetProcessTerminationMethodInternal(&v1);
if (v1 == 1) {
// 0x14000ab2c
return 0;
}
}
// 0x14000ab2c
return 1;
}
// Address range: 0x14000ab34 - 0x14000abd9
int64_t function_14000ab34(void) {
int64_t * v1 = _calloc_base(64, 72); // 0x14000ab50
if (v1 == NULL) {
// 0x14000abba
_free_base(NULL);
return 0;
}
int64_t result = (int64_t)v1; // 0x14000ab50
int64_t v2 = result + 48; // 0x14000ab6b
__acrt_InitializeCriticalSectionEx(v2 - 48, 4000, 0);
*(int64_t *)(v2 - 8) = -1;
char * v3 = (char *)(v2 + 13); // 0x14000ab89
*v3 = *v3 & -8;
*(int64_t *)v2 = 0;
*(int32_t *)(v2 + 8) = 0xa0a0000;
*(char *)(v2 + 12) = 10;
int64_t v4 = v2 + 14; // 0x14000ab99
*(char *)v4 = 0;
int64_t v5 = 1; // 0x14000aba0
int64_t v6 = v5 & 0xffffffff; // 0x14000aba8
v4++;
while ((int32_t)v5 < 5) {
// 0x14000ab9d
*(char *)v4 = 0;
v5 = v6 + 1;
v6 = v5 & 0xffffffff;
v4++;
}
while (v2 != result + 0x11e8) {
// 0x14000abaa
v2 += 72;
__acrt_InitializeCriticalSectionEx(v2 - 48, 4000, 0);
*(int64_t *)(v2 - 8) = -1;
v3 = (char *)(v2 + 13);
*v3 = *v3 & -8;
*(int64_t *)v2 = 0;
*(int32_t *)(v2 + 8) = 0xa0a0000;
*(char *)(v2 + 12) = 10;
v4 = v2 + 14;
*(char *)v4 = 0;
v5 = 1;
v6 = v5 & 0xffffffff;
v4++;
while ((int32_t)v5 < 5) {
// 0x14000ab9d
*(char *)v4 = 0;
v5 = v6 + 1;
v6 = v5 & 0xffffffff;
v4++;
}
}
// 0x14000abba
_free_base(NULL);
return result;
}
// Address range: 0x14000abdc - 0x14000ac2c
int64_t function_14000abdc(int64_t a1) {
if (a1 == 0) {
// 0x14000ac2b
int64_t result; // 0x14000abdc
return result;
}
int64_t lpCriticalSection = a1;
DeleteCriticalSection((struct _RTL_CRITICAL_SECTION *)lpCriticalSection);
while (lpCriticalSection != a1 + 0x11b8) {
// 0x14000ac02
lpCriticalSection += 72;
DeleteCriticalSection((struct _RTL_CRITICAL_SECTION *)lpCriticalSection);
}
// 0x14000ac14
_free_base((int64_t *)a1);
// 0x14000ac2b
return &g113;
}
// Address range: 0x14000ac2c - 0x14000acd4
int64_t function_14000ac2c(int64_t a1) {
// 0x14000ac2c
int64_t v1; // 0x14000ac2c
if ((uint32_t)(int32_t)a1 >= 0x2000) {
// 0x14000ac4b
*_errno() = 9;
int64_t v2; // 0x14000ac2c
int64_t v3; // 0x14000ac2c
function_140006270(a1, v1, v3, v2);
// 0x14000ac5e
return 9;
}
int64_t v4 = a1 & 0xffffffff; // 0x14000ac41
__acrt_lock(7);
int64_t v5 = g86; // 0x14000ac81
int64_t v6 = v5; // 0x14000ac8e
int64_t v7 = 0; // 0x14000ac8e
if (v4 < v5) {
// 0x14000acc6
__acrt_lock2(7, v1);
// 0x14000ac5e
return 0;
}
int64_t v8; // 0x14000ac9f
while (true) {
int64_t * v9 = (int64_t *)(8 * v7 + (int64_t)&g85); // 0x14000ac97
int64_t v10 = v6; // 0x14000ac9b
if (*v9 == 0) {
// 0x14000ac9f
v8 = function_14000ab34();
*v9 = v8;
if (v8 == 0) {
// break -> 0x14000acad
break;
}
int32_t v11 = g86 + 64; // 0x14000acb8
g86 = v11;
v10 = v11;
}
// 0x14000acc1
v6 = v10;
v7++;
if (v4 < v6) {
// 0x14000acc6
__acrt_lock2(7, v1);
// 0x14000ac5e
return 0;
}
}
// 0x14000acc6
__acrt_lock2(7, v1);
// 0x14000ac5e
return v8 + 12 & 0xffffffff;
}
// Address range: 0x14000acd4 - 0x14000acfb
int64_t function_14000acd4(int32_t a1) {
int64_t v1 = *(int64_t *)(8 * (int64_t)(a1 / 64) + (int64_t)&g85); // 0x14000acec
EnterCriticalSection((struct _RTL_CRITICAL_SECTION *)(v1 + (int64_t)(72 * (a1 & 63))));
return &g113;
}
// Address range: 0x14000acfc - 0x14000ad23
int64_t function_14000acfc(int32_t a1) {
int64_t v1 = *(int64_t *)(8 * (int64_t)(a1 / 64) + (int64_t)&g85); // 0x14000ad14
LeaveCriticalSection((struct _RTL_CRITICAL_SECTION *)(v1 + (int64_t)(72 * (a1 & 63))));
return &g113;
}
// Address range: 0x14000ad24 - 0x14000adde
int64_t function_14000ad24(int64_t a1, int64_t a2) {
if ((uint32_t)(int32_t)a1 >= 0) {
int64_t v1 = 0x100000000 * a1;
int64_t v2 = v1 / 0x100000000; // 0x14000ad39
uint32_t v3 = (int32_t)v2; // 0x14000ad40
if (g86 > v3) {
int64_t * v4 = (int64_t *)(8 * v1 / 0x4000000000 + (int64_t)&g85); // 0x14000ad60
int64_t v5 = *v4; // 0x14000ad60
int64_t v6 = 72 * (v2 & 63); // 0x14000ad64
if ((*(char *)(v6 + 56 + v5) & 1) != 0) {
int64_t v7 = v6 + 40;
if (*(int64_t *)(v5 + v7) != -1) {
int32_t v8 = function_140004898(); // 0x14000ad78
if (v8 != 1) {
// 0x14000ada4
*(int64_t *)(*v4 + v7) = -1;
// 0x14000adc8
return 0;
}
int32_t nStdHandle = -10; // 0x14000ad7f
if (v3 != 0) {
int32_t v9 = v3 - v8; // 0x14000ad81
nStdHandle = -11;
if (v9 != 0) {
// 0x14000ad85
nStdHandle = -12;
if (v9 != v8) {
// 0x14000ada4
*(int64_t *)(*v4 + v7) = -1;
// 0x14000adc8
return 0;
}
}
}
// 0x14000ad9c
SetStdHandle(nStdHandle, NULL);
// 0x14000ada4
*(int64_t *)(*v4 + v7) = -1;
// 0x14000adc8
return 0;
}
}
}
}
// 0x14000adb2
*_errno() = 9;
*__doserrno() = 0;
// 0x14000adc8
return 0xffffffff;
}
// Address range: 0x14000ade0 - 0x14000ae55
int64_t function_14000ade0(int64_t a1) {
uint32_t v1 = (int32_t)a1; // 0x14000ade4
if (v1 == -2) {
// 0x14000ade9
*__doserrno() = 0;
*_errno() = 9;
// 0x14000ae50
return -1;
}
int64_t v2 = a1; // 0x14000ae00
int64_t v3; // 0x14000ade0
int64_t v4; // 0x14000ade0
if (v1 >= 0) {
// 0x14000ae02
v2 = a1;
if (g86 > v1) {
int64_t v5 = a1 & 63; // 0x14000ae17
int64_t v6 = *(int64_t *)(8 * 0x100000000 * a1 / 0x4000000000 + (int64_t)&g85); // 0x14000ae22
int64_t v7 = v6 + 72 * v5;
v2 = v5;
v4 = 9 * v5;
v3 = &g85;
if ((*(char *)(v7 + 56) & 1) != 0) {
// 0x14000ae50
return *(int64_t *)(v7 + 40);
}
}
}
// 0x14000ae34
*__doserrno() = 0;
*_errno() = 9;
int64_t v8; // 0x14000ade0
function_140006270(v2, v4, v3, v8);
// 0x14000ae50
return -1;
}
// Address range: 0x14000ae58 - 0x14000ae71
int64_t function_14000ae58(void) {
int32_t v1 = g95; // 0x14000ae58
g95 = v1 == 0 ? 0x4000 : v1;
return 0;
}
// Address range: 0x14000afec - 0x14000b044
int64_t function_14000afec(uint64_t a1, int64_t a2) {
int64_t v1 = 8 * a2; // 0x14000affd
int64_t result = v1 + a1; // 0x14000affd
int64_t v2 = a2 & 0x1fffffffffffffff; // 0x14000b011
int64_t v3 = a1; // 0x14000b01e
if (v2 == 0 || v1 != 0 == result <= a1) {
// 0x14000b034
return result;
}
int64_t v4 = 0; // 0x14000b01e
_free_base((int64_t *)*(int64_t *)v3);
v4++;
v3 += 8;
while (v4 != v2) {
// 0x14000b020
_free_base((int64_t *)*(int64_t *)v3);
v4++;
v3 += 8;
}
// 0x14000b034
return &g113;
}
// Address range: 0x14000b17c - 0x14000b309
int64_t function_14000b17c(int32_t a1, int64_t dwInfoType, int64_t * a3, int64_t a4, int64_t * lpCharType, int64_t a6, int32_t a7) {
// 0x14000b17c
int64_t v1; // bp-88, 0x14000b17c
function_14000331c(&v1, (int64_t)a1);
int64_t v2 = a6 & 0xffffffff; // 0x14000b1c6
if ((int32_t)a6 == 0) {
// 0x14000b1c8
int64_t v3; // 0x14000b17c
v2 = (int64_t)*(int32_t *)(v3 + 12);
}
int64_t v4 = a7 == 0 ? 1 : 9; // 0x14000b1ed
int64_t v5 = function_14000a420((int32_t)v2, v4); // 0x14000b1ef
int64_t v6; // 0x14000b17c
int64_t v7; // 0x14000b17c
int64_t v8; // 0x14000b205
if ((int32_t)v5 != 0) {
// 0x14000b202
v8 = 0x100000000 * v5 / 0x80000000;
uint64_t v9 = v8 + 16; // 0x14000b208
if (v8 > 0xffffffffffffffef || v9 == 0) {
goto lab_0x14000b2d0;
} else {
// 0x14000b217
if (v9 < 1025) {
// 0x14000b220
int64_t v10; // bp-136, 0x14000b17c
int64_t v11 = (int64_t)&v10 - __chkstk(v9, v4, (int64_t)a3) + 48; // 0x14000b23f
if (v11 == 0) {
goto lab_0x14000b2d0;
} else {
// 0x14000b249
*(int32_t *)v11 = 0xcccc;
v6 = v11;
goto lab_0x14000b264;
}
} else {
int64_t * v12 = _malloc_base((int32_t)v9); // 0x14000b251
int64_t v13 = (int64_t)v12; // 0x14000b251
v7 = v13;
if (v12 == NULL) {
goto lab_0x14000b26c;
} else {
// 0x14000b25e
*(int32_t *)v12 = 0xdddd;
v6 = v13;
goto lab_0x14000b264;
}
}
}
} else {
goto lab_0x14000b2d0;
}
lab_0x14000b2d0:;
char v14; // 0x14000b17c
if (v14 != 0) {
int32_t * v15 = (int32_t *)(v1 + 936); // 0x14000b2da
*v15 = *v15 & -3;
}
// 0x14000b2e1
return function_140011ed0(g29);
lab_0x14000b26c:
// 0x14000b26c
if (v7 != 0) {
// 0x14000b271
int64_t v16; // 0x14000b17c
int64_t v17 = v16;
int64_t lpSrcStr; // 0x14000b17c
function_140001e50((int64_t *)lpSrcStr, 0, v8, a4 & 0xffffffff);
int32_t v18; // 0x14000b1f7
*(int32_t *)(v17 + 40) = v18;
*(int64_t *)(v17 + 32) = lpSrcStr;
int32_t v19; // 0x14000b1ef
int32_t cchSrc = function_14000a420(v19, 1); // 0x14000b29a
if (cchSrc != 0) {
// 0x14000b29e
GetStringTypeW((int32_t)dwInfoType, (int16_t *)lpSrcStr, cchSrc, (int16_t *)lpCharType);
}
int64_t v20 = lpSrcStr - 16; // 0x14000b2bf
int32_t v21 = *(int32_t *)v20; // 0x14000b2c3
if (v21 == 0xdddd) {
// 0x14000b2cb
_free_base((int64_t *)v20);
}
}
goto lab_0x14000b2d0;
lab_0x14000b264:
// 0x14000b264
v7 = v6 + 16;
goto lab_0x14000b26c;
}
// Address range: 0x14000b640 - 0x14000b6b0
int64_t function_14000b640(void) {
int64_t v1 = function_140007b44(); // 0x14000b64a
int64_t v2 = v1 + 144; // 0x14000b64f
if ((g43 & *(int32_t *)(v1 + 936)) != 0) {
int64_t result = *(int64_t *)v2; // 0x14000b666
if (result != 0) {
// 0x14000b69a
return result;
}
}
// 0x14000b66e
__acrt_lock(4);
int64_t result2 = function_14000b6b0(v2, g90); // 0x14000b683
__acrt_lock2(4, g90);
if (result2 != 0) {
// 0x14000b69a
return result2;
}
// 0x14000b6a8
function_140005bc0();
__asm_int3();
return __asm_int3();
}
// Address range: 0x14000b6b0 - 0x14000b715
int64_t function_14000b6b0(int64_t a1, int64_t result) {
// 0x14000b6b0
if (a1 == 0 || result == 0) {
// 0x14000b70a
return 0;
}
// 0x14000b6c7
if (a1 == result) {
// 0x14000b70a
return result;
}
// 0x14000b6e4
*(int64_t *)a1 = result;
__acrt_add_locale_ref(result);
__acrt_release_locale_ref(a1);
if (a1 != (int64_t)&g37 && *(int32_t *)(a1 + 16) == 0) {
// 0x14000b6fe
__acrt_free_locale(a1);
}
// 0x14000b70a
return result;
}
// Address range: 0x14000b718 - 0x14000b7ad
int64_t function_14000b718(int64_t a1, uint64_t a2, uint64_t a3) {
// 0x14000b718
if (a2 != 0) {
if (0xffffffffffffffe0 / a2 < a3) {
// 0x14000b748
*_errno() = 12;
// 0x14000b798
return 0;
}
}
int64_t v1 = 0; // 0x14000b75a
if (a1 != 0) {
// 0x14000b75c
v1 = _msize_base();
}
uint64_t v2 = v1;
uint64_t v3 = a3 * a2; // 0x14000b768
int64_t result = function_14000fa34(a1, v3); // 0x14000b772
if (result != 0 && v3 > v2) {
// 0x14000b784
int64_t v4; // 0x14000b718
function_140001e50((int64_t *)(result + v2), 0, v3 - v2, v4);
}
// 0x14000b798
return result;
}
// Address range: 0x14000b7cc - 0x14000b7d7
int64_t function_14000b7cc(void) {
// 0x14000b7cc
g96 = 0;
int64_t v1; // 0x14000b7cc
return v1 & -256 | 1;
}
// Address range: 0x14000b7d8 - 0x14000b858
int64_t function_14000b7d8(int64_t * a1, int64_t * a2) {
// 0x14000b7d8
if (a1 == a2) {
// 0x14000b848
int64_t v1; // 0x14000b7d8
return v1 & -256 | 1;
}
int64_t v2 = (int64_t)a2;
int64_t v3 = (int64_t)a1;
int64_t v4; // 0x14000b7d8
int32_t v5 = v4;
int64_t v6 = 0; // 0x14000b7fb
if (*(int64_t *)v3 != 0) {
// 0x14000b7fd
v6 = function_1400124a0((int32_t)v3, v2, v5);
if ((char)v6 == 0) {
// break -> 0x14000b810
break;
}
}
int64_t v7 = v3 + 16; // 0x14000b807
int64_t v8 = v7; // 0x14000b80e
while (v7 != v2) {
int64_t v9 = v7;
v6 = 0;
if (*(int64_t *)v9 != 0) {
// 0x14000b7fd
v6 = function_1400124a0((int32_t)v3, v2, v5);
v8 = v9;
if ((char)v6 == 0) {
// break -> 0x14000b810
break;
}
}
// 0x14000b807
v7 = v9 + 16;
v8 = v7;
}
// 0x14000b810
if (v8 == v2) {
// 0x14000b848
return v6 & -256 | 1;
}
int64_t v10 = v6; // 0x14000b818
if (v8 != v3) {
int64_t v11 = v8 - 8;
int64_t v12 = v11 - 8; // 0x14000b81e
if (*(int64_t *)v12 != 0) {
// 0x14000b825
if (*(int64_t *)v11 != 0) {
// 0x14000b82d
function_1400124a0(0, v2, v5);
}
}
int64_t v13 = v11 - 16; // 0x14000b840
v10 = v12;
while (v12 != v3) {
// 0x14000b81e
v11 = v13;
v12 = v11 - 8;
if (*(int64_t *)v12 != 0) {
// 0x14000b825
if (*(int64_t *)v11 != 0) {
// 0x14000b82d
function_1400124a0(0, v2, v5);
}
}
// 0x14000b835
v13 = v11 - 16;
v10 = v12;
}
}
// 0x14000b848
return v10 & -256;
}
// Address range: 0x14000b858 - 0x14000b894
int64_t function_14000b858(int64_t * a1, int64_t * a2) {
// 0x14000b858
if (a1 == a2) {
// 0x14000b887
int64_t v1; // 0x14000b858
return v1 & -256 | 1;
}
int64_t v2 = (int64_t)a2;
int64_t v3 = v2; // 0x14000b87e
int64_t v4 = 0; // 0x14000b874
int64_t v5; // 0x14000b858
if (*(int64_t *)(v3 - 8) != 0) {
// 0x14000b876
v4 = function_1400124a0(0, v2, (int32_t)v5);
}
// 0x14000b87e
v3 -= 16;
while (v3 != (int64_t)a1) {
// 0x14000b86d
v4 = 0;
if (*(int64_t *)(v3 - 8) != 0) {
// 0x14000b876
v4 = function_1400124a0(0, v2, (int32_t)v5);
}
// 0x14000b87e
v3 -= 16;
}
// 0x14000b887
return v4 & -256 | 1;
}
// Address range: 0x14000b894 - 0x14000b89c
int64_t function_14000b894(int64_t a1) {
// 0x14000b894
g97 = a1;
int64_t result; // 0x14000b894
return result;
}
// Address range: 0x14000b900 - 0x14000b945
int64_t function_14000b900(int64_t * a1, int64_t * a2, int64_t * a3, int64_t * a4, int64_t a5, int64_t a6) {
int64_t v1 = (int64_t)a2;
__acrt_lock((int32_t)v1);
uint64_t v2 = g29 & 63; // 0x14000b923
int64_t v3 = g100 ^ g29; // 0x14000b926
int64_t result = v3; // 0x14000b92d
if (v2 != 0) {
result = v3 >> v2 | v3 << 64 - v2;
}
int64_t v4; // 0x14000b900
__acrt_lock2((int32_t)v4, v1);
return result;
}
// Address range: 0x14000b948 - 0x14000b976
int64_t function_14000b948(void) {
int64_t v1 = 3; // bp+16, 0x14000b95c
int64_t v2 = 3; // bp+24, 0x14000b964
int64_t v3; // 0x14000b948
return function_14000b900(&v3, &v2, &v3, &v1, 3, 3);
}
// Address range: 0x14000b998 - 0x14000bc04
int64_t function_14000b998(int64_t a1) {
uint32_t v1 = (int32_t)a1; // 0x14000b9bb
int64_t v2 = &g101; // 0x14000b998
int64_t v3; // 0x14000b998
switch (v1) {
case 2: {
// 0x14000ba99
v2 = &g98;
goto lab_0x14000bac1;
}
case 4: {
goto lab_0x14000ba11;
}
case 11: {
goto lab_0x14000ba11;
}
case 8: {
goto lab_0x14000ba11;
}
case 15: {
goto lab_0x14000bac1;
}
case 6: {
// 0x14000ba7e
v2 = &g100;
goto lab_0x14000bac1;
}
default: {
// 0x14000b9d9
v3 = a1;
if (v1 < 23) {
// 0x14000b9e1
v2 = &g99;
switch (v1) {
case 22: {
// 0x14000ba7e
v2 = &g100;
goto lab_0x14000bac1;
}
case 21: {
goto lab_0x14000bac1;
}
default: {
// 0x14000baa0
v2 = 0;
goto lab_0x14000bac1;
}
}
} else {
goto lab_0x14000ba5e;
}
}
}
lab_0x14000ba5e:
// 0x14000ba5e
*_errno() = 22;
int64_t v4; // 0x14000b998
int64_t v5; // 0x14000b998
int64_t v6; // 0x14000b998
function_140006270(v3, v6, v5, v4);
// 0x14000ba21
return 0xffffffff;
lab_0x14000ba11:;
int64_t v7 = function_140007cc0(); // 0x14000ba11
if (v7 == 0) {
// 0x14000ba21
return 0xffffffff;
}
int64_t v8 = *(int64_t *)v7; // 0x14000ba36
int64_t v9 = v8 + 192; // 0x14000ba44
int64_t v10 = v8;
while (*(int32_t *)(v10 + 4) != v1) {
int64_t v11 = v10 + 16; // 0x14000ba4e
v3 = v9;
if (v11 == v9) {
goto lab_0x14000ba5e;
}
v10 = v11;
}
// 0x14000ba59
v3 = v9;
int64_t * v12; // 0x14000b998
int64_t v13; // 0x14000b998
bool v14; // 0x14000b998
int64_t v15; // 0x14000b998
if (v10 != 0) {
int64_t * v16 = (int64_t *)(v10 + 8); // 0x14000bab9
v14 = true;
v13 = v7;
v12 = v16;
v15 = *v16;
goto lab_0x14000bad3;
} else {
goto lab_0x14000ba5e;
}
lab_0x14000bac1:
// 0x14000bac1
__acrt_lock(3);
int64_t * v17 = (int64_t *)v2; // 0x14000bab9
uint64_t v18 = g29 & 63; // 0x14000baca
int64_t v19 = g29 ^ *v17; // 0x14000bacd
v14 = false;
v13 = 0;
v12 = v17;
v15 = v19;
if (v18 != 0) {
v14 = false;
v13 = 0;
v12 = v17;
v15 = v19 << 64 - v18 | v19 >> v18;
}
goto lab_0x14000bad3;
lab_0x14000bad3:;
int64_t v20 = 0; // 0x14000b998
int32_t v21 = 0; // 0x14000b998
int32_t v22; // 0x14000b998
int32_t v23; // 0x14000b998
int64_t v24; // 0x14000b998
int64_t v25; // 0x14000b998
switch (v15) {
case 1: {
goto lab_0x14000bb77;
}
case 0: {
if (!v14) {
// 0x14000bbee
__acrt_lock2(3, v6);
}
// 0x14000bbf6
_3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z((int32_t)&g113, (int64_t)&g113, (int64_t)&g113);
__asm_int3();
__asm_int3();
return __asm_int3();
}
default: {
// 0x14000bae6
v25 = 0;
v23 = 0;
if (v1 < 12) {
// 0x14000baf1
v24 = 0;
v22 = 0;
if ((1 << (v1 & 31) & 2320) == 0) {
goto lab_0x14000bb2e;
} else {
int64_t * v26 = (int64_t *)(v13 + 8); // 0x14000baf7
int64_t v27 = *v26; // 0x14000baf7
*v26 = 0;
v25 = v27;
v23 = 0;
if (v1 != 8) {
goto lab_0x14000bb65;
} else {
int32_t v28 = *(int32_t *)(function_140007b44() + 16); // 0x14000bb17
*(int32_t *)(function_140007b44() + 16) = 140;
v24 = v27;
v22 = v28;
goto lab_0x14000bb2e;
}
}
} else {
goto lab_0x14000bb65;
}
}
}
lab_0x14000bb77:
// 0x14000bb77
if (!v14) {
// 0x14000bb7c
__acrt_lock2(3, v6);
}
// 0x14000bb86
if (v15 == 1) {
// 0x14000ba21
return 0;
}
if (v1 != 8) {
// 0x14000bbb1
function_1400124a0(v1, 0x400124a0, (int32_t)v5);
} else {
uint32_t v29 = *(int32_t *)(function_140007b44() + 16); // 0x14000bb9d
function_1400124a0(v1, (int64_t)v29, 0x400124a0);
}
// 0x14000bbbf
if (v1 >= 12 || (1 << (v1 & 31) & 2320) == 0) {
// 0x14000ba21
return 0;
}
// 0x14000bbca
*(int64_t *)(v13 + 8) = v20;
if (v1 == 8) {
// 0x14000bbdb
*(int32_t *)(function_140007b44() + 16) = v21;
}
// 0x14000ba21
return 0;
lab_0x14000bb65:
// 0x14000bb65
*v12 = g29;
v20 = v25;
v21 = v23;
goto lab_0x14000bb77;
lab_0x14000bb2e:
// 0x14000bb2e
v25 = v24;
v23 = v22;
if (v1 != 8) {
goto lab_0x14000bb65;
} else {
int64_t v30 = *(int64_t *)v13; // 0x14000bb3e
int64_t v31 = v30 + 48;
*(int64_t *)(v31 + 8) = 0;
int64_t v32 = v31 + 16; // 0x14000bb58
v20 = v24;
v21 = v22;
while (v31 != v30 + 176) {
// 0x14000bb5a
v31 = v32;
*(int64_t *)(v31 + 8) = 0;
v32 = v31 + 16;
v20 = v24;
v21 = v22;
}
goto lab_0x14000bb77;
}
}
// Address range: 0x14000bc04 - 0x14000bd0c
int64_t function_14000bc04(int64_t a1, int64_t a2, int64_t a3) {
int64_t v1 = 0x100000000 * a1 / 0x100000000; // 0x14000bc2e
int64_t v2; // bp-64, 0x14000bc04
function_14000331c(&v2, a3);
char v3; // 0x14000bc04
if ((int32_t)v1 >= 256) {
uint64_t v4 = v1 / 256;
int64_t v5; // 0x14000bc04
int16_t v6 = *(int16_t *)(*(int64_t *)v5 + (2 * v4 & 510)); // 0x14000bc6b
int64_t v7 = v6 < 0 ? 2 : 1;
int64_t v8 = 0x100000000000000 * (v6 < 0 ? v4 : a1) / 0x100000000000000;
int32_t v9 = 0; // bp-32, 0x14000bc92
int32_t v10 = *(int32_t *)(v5 + 12); // 0x14000bca1
int64_t v11; // bp-56, 0x14000bc04
int64_t v12 = function_14000b17c((int32_t)(int64_t)&v11, 1, &v8, v7, (int64_t *)&v9, (int64_t)v10, 1); // 0x14000bcb4
if ((int32_t)v12 == 0) {
if (v3 != 0) {
int32_t * v13 = (int32_t *)(v2 + 936); // 0x14000bcc6
*v13 = *v13 & -3;
}
// 0x14000bce7
return function_140011ed0(g29);
}
}
if (v3 != 0) {
int32_t * v14 = (int32_t *)(v2 + 936); // 0x14000bce0
*v14 = *v14 & -3;
}
// 0x14000bce7
return function_140011ed0(g29);
}
// Address range: 0x14000bd0c - 0x14000bdbb
int64_t function_14000bd0c(int64_t a1) {
int64_t v1 = 0; // 0x14000bd2a
if (a1 == 0) {
// 0x14000bda2
return 0;
}
int64_t v2 = 227; // 0x14000bd2a
int32_t v3 = v2 + v1; // 0x14000bd43
int64_t v4 = (v3 - (v3 >> 31)) / 2; // 0x14000bd4b
int64_t v5 = 16 * v4; // 0x14000bd57
int32_t v6 = function_14000f9ac(a1, *(int64_t *)(v5 + 0x1400177c0), 85); // 0x14000bd64
while (v6 != 0) {
// 0x14000bd68
v1 = v6 >= 0 ? v4 + 1 & 0xffffffff : v1;
v2 = v6 >= 0 ? v2 : v4 + 0xffffffff & 0xffffffff;
if (v1 > v2) {
// 0x14000bda2
return 0;
}
v3 = v2 + v1;
v4 = (v3 - (v3 >> 31)) / 2;
v5 = 16 * v4;
v6 = function_14000f9ac(a1, *(int64_t *)(v5 + 0x1400177c0), 85);
}
uint32_t v7 = *(int32_t *)(v5 + 0x1400177c8); // 0x14000bd7e
int64_t result = 0; // 0x14000bd88
if (v7 >= 0 && v7 < 228) {
uint32_t v8 = *(int32_t *)(0x100000000 * (int64_t)v7 / 0x10000000 + 0x140015d60); // 0x14000bd96
result = v8;
}
// 0x14000bda2
return result;
}
// Address range: 0x14000bdbc - 0x14000be3f
int64_t function_14000bdbc(int64_t a1) {
// 0x14000bdbc
if (a1 == 0) {
// 0x14000bdce
*_errno() = 22;
int64_t v1; // 0x14000bdbc
int64_t v2; // 0x14000bdbc
int64_t v3; // 0x14000bdbc
function_140006270(a1, v3, v2, v1);
// 0x14000be34
return 0xffffffff;
}
// 0x14000bde3
if ((*(int32_t *)(a1 + 20) & 0x2000) == 0) {
// 0x14000be2a
function_14000fc88(a1);
// 0x14000be34
return 0xffffffff;
}
int64_t v4 = function_140006d6c(a1); // 0x14000bdf0
function_140006e3c(a1);
uint32_t v5 = _fileno((struct _IO_FILE *)a1); // 0x14000be02
if ((int32_t)function_14000fb24((int64_t)v5) < 0) {
// 0x14000be2a
function_14000fc88(a1);
// 0x14000be34
return 0xffffffff;
}
int64_t * v6 = (int64_t *)(a1 + 40); // 0x14000be17
int64_t v7 = *v6; // 0x14000be17
if (v7 != 0) {
// 0x14000be20
_free_base((int64_t *)v7);
*v6 = 0;
}
// 0x14000be2a
function_14000fc88(a1);
// 0x14000be34
return v4 & 0xffffffff;
}
// Address range: 0x14000be40 - 0x14000bea2
int64_t function_14000be40(int64_t a1) {
// 0x14000be40
if (a1 == 0) {
// 0x14000be57
*_errno() = 22;
int64_t v1; // 0x14000be40
int64_t v2; // 0x14000be40
int64_t v3; // 0x14000be40
function_140006270(a1, v3, v2, v1);
// 0x14000be6a
return 0xffffffff;
}
// 0x14000be75
int64_t result; // 0x14000be40
if ((*(int32_t *)(a1 + 20) & 0x1000) == 0) {
struct _RTL_CRITICAL_SECTION * lpCriticalSection = (struct _RTL_CRITICAL_SECTION *)a1; // 0x14000be86
EnterCriticalSection(lpCriticalSection);
int64_t v4 = function_14000bdbc(a1); // 0x14000be8f
LeaveCriticalSection(lpCriticalSection);
result = v4 & 0xffffffff;
} else {
// 0x14000be7f
function_14000fc88(a1);
result = 0xffffffff;
}
// 0x14000be6a
return result;
}
// Address range: 0x14000bea4 - 0x14000bf30
int64_t function_14000bea4(int64_t * a1, int32_t * a2, int64_t * a3, int32_t * a4, int32_t * a5) {
// 0x14000bea4
int64_t v1; // 0x14000bea4
function_14000acd4((int32_t)v1);
int64_t v2; // 0x14000bea4
int64_t v3 = 0x100000000 * v2;
int64_t v4 = *(int64_t *)(8 * v3 / 0x4000000000 + (int64_t)&g85); // 0x14000bedf
int64_t v5; // 0x14000bea4
if ((*(char *)(72 * (v2 & 63) + 56 + v4) & 1) != 0) {
// 0x14000beea
if (FlushFileBuffers((int64_t *)function_14000ade0(v3 / 0x100000000))) {
// 0x14000bf1c
function_14000acfc((int32_t)v5);
return 0;
}
// 0x14000befe
*__doserrno() = GetLastError();
}
// 0x14000bf0e
*_errno() = 9;
// 0x14000bf1c
function_14000acfc((int32_t)v5);
return 0xffffffff;
}
// Address range: 0x14000bf30 - 0x14000bfc1
int64_t function_14000bf30(int64_t a1) {
int64_t v1 = 0x100000000 * a1;
int64_t v2 = v1 / 0x100000000; // 0x14000bf30
int64_t v3 = v2; // 0x14000bf30
uint32_t v4 = (int32_t)v2; // 0x14000bf3b
if (v4 == -2) {
// 0x14000bf40
*_errno() = 9;
// 0x14000bfbc
return 0xffffffff;
}
int64_t v5 = a1; // 0x14000bf4f
int64_t v6; // 0x14000bf30
if ((int32_t)a1 >= 0) {
// 0x14000bf51
v5 = a1;
if (g86 > v4) {
int64_t v7 = v2 & 63; // 0x14000bf63
int64_t v8 = *(int64_t *)(8 * v1 / 0x4000000000 + (int64_t)&g85); // 0x14000bf71
v6 = &g85;
v5 = 9 * v7;
if ((*(char *)(72 * v7 + 56 + v8) & 1) != 0) {
int64_t v9 = v2; // bp+24, 0x14000bf81
int64_t v10 = v2; // bp+32, 0x14000bf85
int32_t * v11 = (int32_t *)&v3; // bp-24, 0x14000bf93
int64_t v12; // bp+16, 0x14000bf30
int64_t result = function_14000bea4(&v12, (int32_t *)&v10, (int64_t *)&v11, (int32_t *)&v9, (int32_t *)&v3); // 0x14000bfa2
// 0x14000bfbc
return result;
}
}
}
// 0x14000bfa9
*_errno() = 9;
int64_t v13; // 0x14000bf30
function_140006270(v5, v2, v6, v13);
// 0x14000bfbc
return 0xffffffff;
}
// Address range: 0x14000bfc4 - 0x14000c4b0
int64_t function_14000bfc4(int64_t * a1, int64_t a2, uint64_t a3, int64_t a4) {
uint64_t v1 = (a4 & 0xffffffff) + a3; // 0x14000c00c
int64_t * v2 = (int64_t *)(8 * 0x100000000 * a2 / 0x4000000000 + 0x14001dfb0); // 0x14000c022
int64_t v3 = 72 * (a2 & 63); // 0x14000c02a
int32_t v4 = GetConsoleOutputCP(); // 0x14000c033
int64_t v5; // bp-232, 0x14000bfc4
function_14000331c(&v5, 0);
int32_t errorCode = 0; // 0x14000c06d
int32_t v6 = 0; // 0x14000c06d
int64_t v7; // 0x14000bfc4
int64_t v8; // 0x14000bfc4
int64_t v9; // 0x14000bfc4
int64_t v10; // 0x14000bfc4
int64_t v11; // 0x14000bfc4
int64_t v12; // 0x14000bfc4
uint64_t v13; // 0x14000bfc4
int64_t v14; // 0x14000bfc4
int64_t v15; // 0x14000bfc4
int32_t v16; // bp-240, 0x14000bfc4
char lpBuffer2; // bp-244, 0x14000bfc4
int32_t v17; // 0x14000bfc4
int32_t v18; // 0x14000bfc4
int64_t lpBuffer; // bp-80, 0x14000bfc4
int64_t v19; // 0x14000bfc4
int64_t v20; // 0x14000bfc4
int64_t v21; // 0x14000bfc4
int64_t v22; // 0x14000bfc4
int64_t * hFile; // 0x14000bfc4
int64_t v23; // 0x14000c252
int64_t v24; // 0x14000c1b8
int64_t v25; // 0x14000c0de
if (v1 > a3) {
// 0x14000c081
v20 = v3 + 62;
int64_t v26; // bp-96, 0x14000bfc4
int64_t v27 = &v26;
char v28; // bp-88, 0x14000bfc4
int64_t v29 = &v28;
v21 = &v16;
v22 = &lpBuffer;
hFile = (int64_t *)*(int64_t *)(v3 + 40 + *v2);
int64_t v30 = v3 + 61;
v17 = 0;
v11 = a3;
while (true) {
lab_0x14000c081:
// 0x14000c081
v12 = v11;
v18 = v17;
char * v31 = (char *)v12;
lpBuffer2 = *v31;
v16 = 0;
int64_t v32 = *v2;
int64_t v33; // 0x14000bfc4
if (*(int32_t *)(v33 + 12) != 0xfde9) {
char * v34 = (char *)(v30 + v32); // 0x14000c21d
char v35 = *v34; // 0x14000c21d
if ((v35 & 4) == 0) {
int16_t * v36 = __pctype_func(); // 0x14000c242
unsigned char v37 = *v31; // 0x14000c247
if (*(int16_t *)(2 * (int64_t)v37 + (int64_t)v36) > -1) {
int64_t v38 = function_140007300(&v16, v12, 1); // 0x14000c28a
v14 = v12;
v9 = 1;
errorCode = 0;
v6 = v18;
if ((int32_t)v38 == -1) {
// break -> 0x14000c459
break;
}
goto lab_0x14000c298;
} else {
// 0x14000c252
v23 = v12 + 1;
v19 = v12;
if (v23 >= v1) {
// 0x14000c410
*(char *)(*v2 + v20) = v37;
char * v39 = (char *)(v30 + *v2); // 0x14000c433
*v39 = *v39 | 4;
errorCode = 0;
v6 = v18;
goto lab_0x14000c459_6;
}
goto lab_0x14000c261;
}
} else {
// 0x14000c227
v28 = *(char *)(v32 + v20);
*v34 = v35 & -5;
v23 = v12;
v19 = v29;
goto lab_0x14000c261;
}
} else {
int64_t v40 = v32 + v20;
int64_t v41 = 0; // 0x14000c0b3
int64_t v42 = 0; // 0x14000c0b3
while (*(char *)(v42 + v40) != 0) {
// 0x14000c0be
v41 = v41 + 1 & 0xffffffff;
v42++;
if (v42 >= 5) {
goto lab_0x14000c0d2;
}
}
// 0x14000c0c9
int64_t v43; // 0x14000bfc4
if (v43 == 0) {
unsigned char v44 = *v31; // 0x14000c1b2
v24 = v1 - v12;
char v45 = *(char *)((int64_t)v44 + 0x14001d910); // 0x14000c1bb
uint64_t v46 = (int64_t)v45; // 0x14000c1bb
if (v24 <= v46) {
// 0x14000c3b7
errorCode = 0;
v6 = v18;
if (v24 < 1) {
goto lab_0x14000c459_6;
} else {
// 0x14000c3dc
*(char *)v40 = v44;
v8 = 1;
v10 = 0;
errorCode = 0;
v6 = v18;
if (v24 == 1) {
goto lab_0x14000c459_6;
} else {
goto lab_0x14000c3dc_2;
}
}
}
int64_t v47 = 0; // bp-144, 0x14000c1d6
int64_t v48 = v12; // bp-136, 0x14000c1dd
int64_t v49 = v45 == 3 ? 2 : 1; // 0x14000c1e8
int64_t v50 = function_14000cc98(&v16, &v48, v49, &v47, 0, (int64_t *)v12); // 0x14000c1f8
errorCode = 0;
v6 = v18;
if (v50 == -1) {
// break -> 0x14000c459
break;
}
// 0x14000c203
v14 = v12 + v46;
v9 = v49;
} else {
lab_0x14000c0d2:
// 0x14000c0d2
v13 = 5;
v25 = v1 - v12;
char v51 = *(char *)((int64_t)*(char *)v40 + 0x14001d910); // 0x14000c0e7
int64_t v52 = (int64_t)v51 + 1; // 0x14000c0f0
int64_t v53; // 0x14000bfc4
int64_t v54 = v52 - v53; // 0x14000c0f6
int64_t v55 = 0x100000000 * v54;
int64_t v56 = v55 / 0x100000000; // 0x14000c0f9
if (v56 > v25) {
// 0x14000c37d
errorCode = 0;
v6 = v18;
if (v25 < 1) {
goto lab_0x14000c459_6;
} else {
// 0x14000c385
*(char *)(v40 + v13) = *v31;
v7 = 1;
v15 = v13;
errorCode = 0;
v6 = v18;
if (v25 == 1) {
goto lab_0x14000c459_6;
} else {
goto lab_0x14000c38f;
}
}
}
int64_t v57 = v32 - v27; // 0x14000c10c
int64_t v58 = 0; // 0x14000c10f
int64_t v59 = v58 + v27; // 0x14000c117
v58++;
*(char *)v59 = *(char *)(v57 + v20 + v59);
while (v58 < v13) {
// 0x14000c113
v59 = v58 + v27;
v58++;
*(char *)v59 = *(char *)(v57 + v20 + v59);
}
if ((int32_t)v54 >= 1) {
// 0x14000c12e
function_140002760(v13 + v27, v12, v56, v57);
}
int64_t v60 = 0;
int64_t v61 = v60 + 1; // 0x14000c158
*(char *)(v60 + v20 + *v2) = 0;
while (v61 < v13) {
// 0x14000c14d
v60 = v61;
v61 = v60 + 1;
*(char *)(v60 + v20 + *v2) = 0;
}
int64_t v62 = 0; // bp-160, 0x14000c169
int64_t v63 = v27; // bp-152, 0x14000c16d
int64_t v64 = (int32_t)v52 == 4 ? 2 : 1; // 0x14000c188
int64_t v65 = function_14000cc98(&v16, &v63, v64, &v62, 0, &v26); // 0x14000c190
errorCode = 0;
v6 = v18;
if (v65 == -1) {
// break -> 0x14000c459
break;
}
// 0x14000c19f
v14 = (v55 - 0x100000000) / 0x100000000 + v12;
v9 = v64;
}
goto lab_0x14000c298;
}
}
}
goto lab_0x14000c459_6;
lab_0x14000c298:;
uint32_t nNumberOfBytesToWrite = (int32_t)function_14000a47c(v4, 0, v21, (int32_t)v9, v22, 5); // 0x14000c2cd
errorCode = 0;
v6 = v18;
if (nNumberOfBytesToWrite == 0) {
// break -> 0x14000c459
goto lab_0x14000c459_6;
}
// 0x14000c2d5
int32_t lpNumberOfBytesWritten; // bp-236, 0x14000bfc4
if (!WriteFile(hFile, &lpBuffer, nNumberOfBytesToWrite, &lpNumberOfBytesWritten, NULL)) {
// 0x14000c49e
errorCode = GetLastError();
v6 = v18;
goto lab_0x14000c459_6;
}
// 0x14000c2fb
errorCode = 0;
v6 = v18;
if (lpNumberOfBytesWritten < nNumberOfBytesToWrite) {
// break -> 0x14000c459
goto lab_0x14000c459_6;
}
int32_t v73 = v18; // 0x14000c31a
if (lpBuffer2 == 10) {
// 0x14000c31c
lpBuffer2 = 13;
if (!WriteFile(hFile, (int64_t *)&lpBuffer2, 1, &lpNumberOfBytesWritten, NULL)) {
// 0x14000c43e
errorCode = GetLastError();
v6 = v18;
goto lab_0x14000c459_6;
}
// 0x14000c34d
errorCode = 0;
v6 = v18;
if (lpNumberOfBytesWritten == 0) {
// break -> 0x14000c459
goto lab_0x14000c459_6;
}
// 0x14000c358
v73 = v18 + 1;
}
int64_t v74 = v14 + 1; // 0x14000c2ab
v17 = v73;
v11 = v74;
errorCode = 0;
v6 = v73;
if (v74 >= v1) {
// break -> 0x14000c459
goto lab_0x14000c459_6;
}
goto lab_0x14000c081;
lab_0x14000c261:;
int64_t v75 = function_140007300(&v16, v19, 2); // 0x14000c26c
v14 = v23;
v9 = 1;
errorCode = 0;
v6 = v18;
if ((int32_t)v75 == -1) {
// break -> 0x14000c459
goto lab_0x14000c459_6;
}
goto lab_0x14000c298;
lab_0x14000c459_6:;
// 0x14000c459
char v66; // 0x14000bfc4
if (v66 != 0) {
int32_t * v67 = (int32_t *)(v5 + 936); // 0x14000c460
*v67 = *v67 & -3;
}
// 0x14000c467
*a1 = __asm_movsd_8(__asm_movsd((int64_t)errorCode));
*(int32_t *)((int64_t)a1 + 8) = v6;
return function_140011ed0(g29);
lab_0x14000c3dc_2:;
int64_t v68 = v10 + 1; // 0x14000c3ee
int64_t v69 = (v8 & 0xffffffff) + 1; // 0x14000c3e0
*(char *)(*v2 + v20 + v68) = *(char *)(v68 + v12);
v8 = v69;
v10 = v68;
errorCode = 0;
v6 = v18;
if (0x100000000 * v69 / 0x100000000 < v24) {
goto lab_0x14000c3dc_2;
} else {
goto lab_0x14000c459_6;
}
lab_0x14000c38f:;
int64_t v70 = v15 + 1; // 0x14000c39f
char v71 = *(char *)(v12 - v13 + v70); // 0x14000c38f
int64_t v72 = (v7 & 0xffffffff) + 1; // 0x14000c392
*(char *)(*v2 + v20 + v70) = v71;
v7 = v72;
v15 = v70;
errorCode = 0;
v6 = v18;
if (0x100000000 * v72 / 0x100000000 < v25) {
goto lab_0x14000c38f;
} else {
goto lab_0x14000c459_6;
}
}
// Address range: 0x14000c4b0 - 0x14000c5b2
int64_t function_14000c4b0(int64_t * a1, int64_t a2, uint64_t a3, int64_t a4) {
int64_t v1 = (int64_t)a1;
int64_t v2; // bp-24, 0x14000c4b0
int64_t v3 = (int64_t)&v2 - __chkstk(v1, a2, a3); // 0x14000c4c8
int64_t * v4 = (int64_t *)(v3 + 0x1440); // 0x14000c4d5
*v4 = g29 ^ v3;
uint64_t v5 = (a4 & 0xffffffff) + a3; // 0x14000c4f8
int64_t v6 = *(int64_t *)(8 * 0x100000000 * a2 / 0x4000000000 + (int64_t)&g85); // 0x14000c4fe
int64_t hFile = *(int64_t *)(72 * (a2 & 63) + 40 + v6); // 0x14000c506
*a1 = 0;
int32_t * v7 = (int32_t *)(v1 + 8); // 0x14000c510
*v7 = 0;
if (v5 <= a3) {
// 0x14000c587
return function_140011ed0(*v4 ^ v3);
}
int64_t lpBuffer = v3 + 64; // 0x14000c518
int32_t * lpNumberOfBytesWritten = (int32_t *)(v3 + 48); // 0x14000c563
int32_t * v8 = (int32_t *)(v1 + 4);
int64_t v9 = a3;
int64_t v10 = lpBuffer;
int64_t v11 = v10; // 0x14000c520
int64_t v12 = v9; // 0x14000c520
int64_t v13; // 0x14000c4b0
char v14; // 0x14000c522
int64_t v15; // 0x14000c524
int64_t v16; // 0x14000c536
while (v9 < v5) {
// 0x14000c522
v14 = *(char *)v9;
v13 = v10;
if (v14 == 10) {
// 0x14000c52b
*v7 = *v7 + 1;
*(char *)v10 = 13;
v13 = v10 + 1;
}
// 0x14000c534
v15 = v9 + 1;
*(char *)v13 = v14;
v16 = v13 + 1;
v11 = v16;
v12 = v15;
if (v16 >= v3 + 0x143f) {
// break -> 0x14000c546
break;
}
v9 = v15;
v10 = v16;
v11 = v10;
v12 = v9;
}
// 0x14000c546
*(int64_t *)(v3 + 32) = 0;
uint32_t nNumberOfBytesToWrite = (int32_t)(v11 - lpBuffer); // 0x14000c558
while (WriteFile((int64_t *)hFile, (int64_t *)lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, (struct _OVERLAPPED *)&g113)) {
uint32_t v17 = *lpNumberOfBytesWritten; // 0x14000c56d
*v8 = *v8 + v17;
if (v12 < v5 != v17 >= nNumberOfBytesToWrite) {
// 0x14000c587
return function_140011ed0(*v4 ^ v3);
}
v9 = v12;
v10 = lpBuffer;
v11 = v10;
v12 = v9;
while (v9 < v5) {
// 0x14000c522
v14 = *(char *)v9;
v13 = v10;
if (v14 == 10) {
// 0x14000c52b
*v7 = *v7 + 1;
*(char *)v10 = 13;
v13 = v10 + 1;
}
// 0x14000c534
v15 = v9 + 1;
*(char *)v13 = v14;
v16 = v13 + 1;
v11 = v16;
v12 = v15;
if (v16 >= v3 + 0x143f) {
// break -> 0x14000c546
break;
}
v9 = v15;
v10 = v16;
v11 = v10;
v12 = v9;
}
// 0x14000c546
*(int64_t *)(v3 + 32) = 0;
nNumberOfBytesToWrite = (int32_t)(v11 - lpBuffer);
}
// 0x14000c57f
*(int32_t *)a1 = GetLastError();
// 0x14000c587
return function_140011ed0(*v4 ^ v3);
}
// Address range: 0x14000c5b4 - 0x14000c6cd
int64_t function_14000c5b4(int64_t * a1, int64_t a2, uint64_t a3, int64_t a4) {
int64_t v1 = (int64_t)a1;
int64_t v2; // bp-24, 0x14000c5b4
int64_t v3 = (int64_t)&v2 - __chkstk(v1, a2, a3); // 0x14000c5cc
int64_t * v4 = (int64_t *)(v3 + 0x1440); // 0x14000c5d9
*v4 = g29 ^ v3;
uint64_t v5 = (a4 & 0xffffffff) + a3; // 0x14000c5fc
int64_t v6 = *(int64_t *)(8 * 0x100000000 * a2 / 0x4000000000 + (int64_t)&g85); // 0x14000c602
int64_t hFile = *(int64_t *)(72 * (a2 & 63) + 40 + v6); // 0x14000c60a
*a1 = 0;
int32_t * v7 = (int32_t *)(v1 + 8); // 0x14000c614
*v7 = 0;
if (v5 <= a3) {
// 0x14000c6a2
return function_140011ed0(*v4 ^ v3);
}
int64_t lpBuffer = v3 + 64; // 0x14000c620
int32_t * lpNumberOfBytesWritten = (int32_t *)(v3 + 48); // 0x14000c67e
int32_t * v8 = (int32_t *)(v1 + 4);
int64_t v9 = a3;
int64_t v10 = lpBuffer;
int64_t v11 = v10; // 0x14000c628
int64_t v12 = v9; // 0x14000c628
int64_t v13; // 0x14000c5b4
int16_t v14; // 0x14000c62a
int64_t v15; // 0x14000c62d
int64_t v16; // 0x14000c64a
while (v9 < v5) {
// 0x14000c62a
v14 = *(int16_t *)v9;
v13 = v10;
if (v14 == 10) {
// 0x14000c637
*v7 = *v7 + 2;
*(int16_t *)v10 = 13;
v13 = v10 + 2;
}
// 0x14000c647
v15 = v9 + 2;
*(int16_t *)v13 = v14;
v16 = v13 + 2;
v11 = v16;
v12 = v15;
if (v16 >= v3 + 0x143e) {
// break -> 0x14000c65b
break;
}
v9 = v15;
v10 = v16;
v11 = v10;
v12 = v9;
}
// 0x14000c65b
*(int64_t *)(v3 + 32) = 0;
uint32_t nNumberOfBytesToWrite = (int32_t)(v11 - lpBuffer) & -2; // 0x14000c67b
while (WriteFile((int64_t *)hFile, (int64_t *)lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, (struct _OVERLAPPED *)&g113)) {
uint32_t v17 = *lpNumberOfBytesWritten; // 0x14000c688
*v8 = *v8 + v17;
if (v12 < v5 != v17 >= nNumberOfBytesToWrite) {
// 0x14000c6a2
return function_140011ed0(*v4 ^ v3);
}
v9 = v12;
v10 = lpBuffer;
v11 = v10;
v12 = v9;
while (v9 < v5) {
// 0x14000c62a
v14 = *(int16_t *)v9;
v13 = v10;
if (v14 == 10) {
// 0x14000c637
*v7 = *v7 + 2;
*(int16_t *)v10 = 13;
v13 = v10 + 2;
}
// 0x14000c647
v15 = v9 + 2;
*(int16_t *)v13 = v14;
v16 = v13 + 2;
v11 = v16;
v12 = v15;
if (v16 >= v3 + 0x143e) {
// break -> 0x14000c65b
break;
}
v9 = v15;
v10 = v16;
v11 = v10;
v12 = v9;
}
// 0x14000c65b
*(int64_t *)(v3 + 32) = 0;
nNumberOfBytesToWrite = (int32_t)(v11 - lpBuffer) & -2;
}
// 0x14000c69a
*(int32_t *)a1 = GetLastError();
// 0x14000c6a2
return function_140011ed0(*v4 ^ v3);
}
// Address range: 0x14000c6d0 - 0x14000c840
int64_t function_14000c6d0(int64_t * a1, int64_t a2, uint64_t a3, int64_t a4) {
int64_t v1 = (int64_t)a1;
int64_t v2; // bp-40, 0x14000c6d0
int64_t v3 = (int64_t)&v2 - __chkstk(v1, a2, a3); // 0x14000c6ec
int64_t * v4 = (int64_t *)(v3 + 0x1460); // 0x14000c6f9
*v4 = g29 ^ v3;
uint64_t v5 = (a4 & 0xffffffff) + a3; // 0x14000c71c
int64_t v6 = *(int64_t *)(8 * 0x100000000 * a2 / 0x4000000000 + (int64_t)&g85); // 0x14000c725
int64_t hFile = *(int64_t *)(72 * (a2 & 63) + 40 + v6); // 0x14000c72d
*a1 = 0;
*(int32_t *)(v1 + 8) = 0;
if (v5 <= a3) {
// 0x14000c811
return function_140011ed0(*v4 ^ v3);
}
int64_t v7 = v3 + 80; // 0x14000c743
int64_t v8 = v3 + 1792; // 0x14000c79b
int64_t * v9 = (int64_t *)(v3 + 32); // 0x14000c7a6
int32_t * lpNumberOfBytesWritten = (int32_t *)(v3 + 64);
int64_t v10 = a3;
int64_t v11 = v7;
int64_t v12 = v11; // 0x14000c74b
int64_t v13 = v10; // 0x14000c74b
int64_t v14; // 0x14000c6d0
int16_t v15; // 0x14000c74d
int64_t v16; // 0x14000c750
int64_t v17; // 0x14000c769
while (v10 < v5) {
// 0x14000c74d
v15 = *(int16_t *)v10;
v14 = v11;
if (v15 == 10) {
// 0x14000c75a
*(int16_t *)v11 = 13;
v14 = v11 + 2;
}
// 0x14000c766
v16 = v10 + 2;
*(int16_t *)v14 = v15;
v17 = v14 + 2;
v12 = v17;
v13 = v16;
if (v17 >= v3 + 1784) {
// break -> 0x14000c77a
break;
}
v10 = v16;
v11 = v17;
v12 = v11;
v13 = v10;
}
// 0x14000c77a
*(int64_t *)(v3 + 56) = 0;
*(int64_t *)(v3 + 48) = 0;
*(int32_t *)(v3 + 40) = 3413;
*v9 = v8;
int64_t v18 = function_14000a47c(0xfde9, 0, v7, (int32_t)((v12 - v7) / 2), (int64_t)&g113, (int32_t)&g113); // 0x14000c7b5
uint32_t v19 = (int32_t)v18; // 0x14000c7bc
int64_t v20 = 0; // 0x14000c7be
while (v19 != 0) {
// 0x14000c743
*v9 = 0;
int32_t v21 = v20; // 0x14000c7e4
bool v22 = WriteFile((int64_t *)hFile, (int64_t *)(v20 + v8), v19 - v21, lpNumberOfBytesWritten, (struct _OVERLAPPED *)&g113); // 0x14000c7e7
if (!v22) {
// break (via goto) -> 0x14000c809
goto lab_0x14000c809;
}
uint32_t v23 = *lpNumberOfBytesWritten + v21; // 0x14000c7f1
v20 = v23;
while (v23 < v19) {
// 0x14000c7c6
*v9 = 0;
v21 = v20;
v22 = WriteFile((int64_t *)hFile, (int64_t *)(v20 + v8), v19 - v21, lpNumberOfBytesWritten, (struct _OVERLAPPED *)&g113);
if (!v22) {
// break (via goto) -> 0x14000c809
goto lab_0x14000c809;
}
// 0x14000c7f1
v23 = *lpNumberOfBytesWritten + v21;
v20 = v23;
}
// 0x14000c7f9
*(int32_t *)(v1 + 4) = (int32_t)v13 - (int32_t)a3;
if (v13 >= v5) {
// 0x14000c811
return function_140011ed0(*v4 ^ v3);
}
v10 = v13;
v11 = v7;
v12 = v11;
v13 = v10;
while (v10 < v5) {
// 0x14000c74d
v15 = *(int16_t *)v10;
v14 = v11;
if (v15 == 10) {
// 0x14000c75a
*(int16_t *)v11 = 13;
v14 = v11 + 2;
}
// 0x14000c766
v16 = v10 + 2;
*(int16_t *)v14 = v15;
v17 = v14 + 2;
v12 = v17;
v13 = v16;
if (v17 >= v3 + 1784) {
// break -> 0x14000c77a
break;
}
v10 = v16;
v11 = v17;
v12 = v11;
v13 = v10;
}
// 0x14000c77a
*(int64_t *)(v3 + 56) = 0;
*(int64_t *)(v3 + 48) = 0;
*(int32_t *)(v3 + 40) = 3413;
*v9 = v8;
v18 = function_14000a47c(0xfde9, 0, v7, (int32_t)((v12 - v7) / 2), (int64_t)&g113, (int32_t)&g113);
v19 = (int32_t)v18;
v20 = 0;
}
lab_0x14000c809:
// 0x14000c809
*(int32_t *)a1 = GetLastError();
// 0x14000c811
return function_140011ed0(*v4 ^ v3);
}
// Address range: 0x14000c840 - 0x14000c92b
int64_t function_14000c840(int64_t a1, int64_t a2, int64_t a3) {
int64_t v1 = 0x100000000 * a1;
int64_t v2 = v1 / 0x100000000; // 0x14000c861
uint32_t v3 = (int32_t)v2; // 0x14000c864
if (v3 == -2) {
// 0x14000c869
*__doserrno() = 0;
*_errno() = 9;
// 0x14000c913
return 0xffffffff;
}
if ((int32_t)a1 >= 0) {
// 0x14000c885
if (g86 > v3) {
int64_t * v4 = (int64_t *)(8 * v1 / 0x4000000000 + (int64_t)&g85); // 0x14000c8a5
int64_t v5 = 72 * (v2 & 63) + 56;
if ((*(char *)(*v4 + v5) & 1) != 0) {
// 0x14000c8b2
function_14000acd4(v3);
int64_t result; // 0x14000c840
if ((*(char *)(*v4 + v5) & 1) != 0) {
// 0x14000c8de
result = function_14000c92c(v2 & 0xffffffff, a2, a3 & 0xffffffff) & 0xffffffff;
} else {
// 0x14000c8c9
*_errno() = 9;
*__doserrno() = 0;
result = 0xffffffff;
}
// 0x14000c8ed
function_14000acfc(v3);
// 0x14000c913
return result;
}
}
}
// 0x14000c8f8
*__doserrno() = 0;
*_errno() = 9;
int64_t v6; // 0x14000c840
function_140006270(a1, a2, a3, v6);
// 0x14000c913
return 0xffffffff;
}
// Address range: 0x14000c92c - 0x14000cc0f
int64_t function_14000c92c(int64_t a1, int64_t lpBuffer, int64_t a3) {
int32_t nNumberOfBytesToWrite = a3; // 0x14000c94e
if (nNumberOfBytesToWrite == 0) {
// 0x14000cbf7
return 0;
}
int64_t v1 = a1; // 0x14000c95a
int64_t v2; // 0x14000c92c
char v3; // 0x14000c92c
char v4; // 0x14000c92c
int64_t v5; // 0x14000c92c
int64_t v6; // 0x14000c945
int64_t v7; // 0x14000c948
int64_t * v8; // 0x14000c993
int64_t v9; // 0x14000c997
char v10; // 0x14000c997
if (lpBuffer != 0) {
int64_t v11 = 0x100000000 * a1;
v7 = v11 / 0x100000000;
v8 = (int64_t *)(8 * v11 / 0x4000000000 + (int64_t)&g85);
v1 = *v8;
v9 = 72 * (v7 & 63);
v10 = *(char *)(v1 + v9 + 57);
if ((a3 & 1) == 0 || v10 > 2) {
// 0x14000c9ad
v4 = lpBuffer;
v5 = v9 + 56;
v2 = v7 & 0xffffffff;
char v12 = v4; // 0x14000c9b3
if ((*(char *)(v1 + v5) & 32) != 0) {
// 0x14000c9b5
function_14000fe38(v2, 0, 2);
v12 = 0;
}
// 0x14000c9c3
v6 = a3 & 0xffffffff;
v3 = v12;
if ((int32_t)function_14000e944(v2) == 0) {
goto lab_0x14000cae2;
} else {
// 0x14000c9d7
v3 = v12;
if (*(char *)(*v8 + v5) < 0) {
// 0x14000c9ed
} else {
goto lab_0x14000cae2;
}
}
} else {
goto lab_0x14000c95c;
}
} else {
goto lab_0x14000c95c;
}
lab_0x14000cb74:;
char v13 = v4; // 0x14000cb74
int64_t v14 = lpBuffer; // 0x14000cb74
int32_t errorCode; // bp-104, 0x14000c92c
int128_t v15 = __asm_movsd((int64_t)errorCode); // 0x14000cb74
int64_t v16 = 0; // 0x14000cb74
int64_t v17 = v6; // 0x14000cb74
goto lab_0x14000cb7e;
lab_0x14000c95c:
// 0x14000c95c
*__doserrno() = 0;
*_errno() = 22;
int64_t v22; // 0x14000c92c
function_140006270(v1, lpBuffer, a3, v22);
// 0x14000cbf7
return 0xffffffff;
lab_0x14000cae2:;
int64_t v23 = *v8; // 0x14000cae9
char v21; // 0x14000c92c
int64_t v24; // 0x14000c92c
int32_t lpNumberOfBytesWritten; // bp-100, 0x14000c92c
if (*(char *)(v23 + v5) < 0) {
if (v10 == 0) {
// 0x14000cb2d
v24 = function_14000c4b0((int64_t *)&errorCode, v2, lpBuffer, v6);
goto lab_0x14000cad6;
} else {
int32_t v25 = (int32_t)v10 - 1; // 0x14000cafb
if (v25 == 0) {
// 0x14000cb19
v24 = function_14000c6d0((int64_t *)&errorCode, v2, lpBuffer, v6);
goto lab_0x14000cad6;
} else {
// 0x14000cb00
v21 = v3;
if (v25 != 1) {
goto lab_0x14000cbbe;
} else {
// 0x14000cb05
v24 = function_14000c5b4((int64_t *)&errorCode, v2, lpBuffer, v6);
goto lab_0x14000cad6;
}
}
}
} else {
int64_t hFile = *(int64_t *)(v9 + 40 + v23); // 0x14000cb41
errorCode = 0;
if (!WriteFile((int64_t *)hFile, (int64_t *)lpBuffer, nNumberOfBytesToWrite, &lpNumberOfBytesWritten, NULL)) {
// 0x14000cb68
errorCode = GetLastError();
}
goto lab_0x14000cb74;
}
// 0x14000ca18
int16_t lpMode; // bp-72, 0x14000c92c
int64_t v26 = &lpMode; // 0x14000ca23
int64_t v27; // 0x14000c92c
int64_t hConsoleHandle = *(int64_t *)(v9 + 40 + v27); // 0x14000ca27
bool v28 = GetConsoleMode((int64_t *)hConsoleHandle, (int32_t *)&lpMode); // 0x14000ca2c
char v29 = v26;
v3 = v29;
if (!v28) {
goto lab_0x14000cae2;
} else {
if (v10 == 0) {
int64_t v30 = function_14000bfc4((int64_t *)&errorCode, v2, lpBuffer, v6); // 0x14000cad1
v24 = v30;
goto lab_0x14000cad6;
} else {
// 0x14000ca43
v21 = v29;
unsigned char v31; // 0x14000c92c
if (v31 < 2) {
uint64_t v32 = v6 + lpBuffer; // 0x14000ca50
errorCode = 0;
if (v32 > lpBuffer) {
uint32_t v33 = lpNumberOfBytesWritten; // 0x14000ca64
int64_t v34 = 0; // 0x14000ca64
int64_t v35 = v33; // 0x14000ca64
int64_t v36 = lpBuffer; // 0x14000ca64
int64_t v37 = v36;
int64_t v38 = v34;
uint16_t v39 = *(int16_t *)v37; // 0x14000ca67
lpMode = v39;
int16_t v40 = lpMode; // 0x14000ca77
while (v40 == (int16_t)function_14000fe40((int64_t)v39)) {
int64_t v41 = v35;
int64_t v42 = v41 + 2; // 0x14000ca80
int64_t v43 = v42 & 0xffffffff; // 0x14000ca80
lpNumberOfBytesWritten = v42;
int64_t v44 = v38; // 0x14000ca8a
int64_t v45 = v43; // 0x14000ca8a
if (v40 == 10) {
// 0x14000ca8c
if ((int16_t)function_14000fe40(13) != 13) {
// break -> 0x14000cab6
break;
}
int64_t v46 = v43 + 1; // 0x14000caa0
lpNumberOfBytesWritten = v46;
v44 = v38 + 1 & 0xffffffff;
v45 = v46 & 0xffffffff;
}
int64_t v47 = v45;
int64_t v48 = v44;
int64_t v49 = v37 + 2; // 0x14000caa7
v34 = v48;
v35 = v47;
v36 = v49;
if (v49 >= v32) {
goto lab_0x14000cb74;
}
v37 = v36;
v38 = v34;
v39 = *(int16_t *)v37;
lpMode = v39;
v40 = lpMode;
}
// 0x14000cab6
errorCode = GetLastError();
}
goto lab_0x14000cb74;
} else {
goto lab_0x14000cbbe;
}
}
}
lab_0x14000cad6:;
int128_t v50 = __asm_movsd(*(int64_t *)v24); // 0x14000cad6
v13 = v7;
v14 = v2;
v15 = v50;
v16 = (int64_t)*(int32_t *)(v24 + 8);
v17 = lpBuffer;
goto lab_0x14000cb7e;
lab_0x14000cb7e:;
int64_t v18 = __asm_movsd_8(v15); // 0x14000cb79
int32_t v19 = v18; // 0x14000cb79
if (v19 <= -1) {
// 0x14000cbf7
int32_t v20; // 0x14000c92c
return v20 - (int32_t)v16;
}
// 0x14000cb8a
v21 = v13;
if (v19 != 0) {
if (v19 != 5) {
// 0x14000cbb1
__acrt_errno_map_os_error(v18 & 0xffffffff, v14, v17);
} else {
// 0x14000cb96
*_errno() = 9;
*__doserrno() = 5;
}
// 0x14000cbf7
return 0xffffffff;
}
goto lab_0x14000cbbe;
lab_0x14000cbbe:;
int64_t result = 0; // 0x14000cbcf
if (v21 == 26 != (*(char *)(*v8 + v5) & 64) != 0) {
// 0x14000cbd6
*_errno() = 28;
*__doserrno() = 0;
result = 0xffffffff;
}
// 0x14000cbf7
return result;
}
// Address range: 0x14000cc10 - 0x14000cc5b
int64_t function_14000cc10(char a1) {
// 0x14000cc10
int64_t v1; // bp-40, 0x14000cc10
int64_t v2; // 0x14000cc10
function_14000331c(&v1, v2);
int64_t result = 0; // 0x14000cc2b
if ((int32_t)a1 < 256) {
// 0x14000cc2d
int64_t v3; // 0x14000cc10
int16_t v4 = *(int16_t *)(*(int64_t *)v3 + 2 * (int64_t)a1); // 0x14000cc35
result = v4 & -0x8000;
}
// 0x14000cc42
char v5; // 0x14000cc10
if (v5 != 0) {
int32_t * v6 = (int32_t *)(v1 + 936); // 0x14000cc4e
*v6 = *v6 & -3;
}
// 0x14000cc55
return result;
}
// Address range: 0x14000cc5c - 0x14000cc95
int64_t function_14000cc5c(int64_t a1) {
// 0x14000cc5c
int32_t v1; // bp-24, 0x14000cc5c
int64_t v2; // 0x14000cc5c
int64_t v3; // 0x14000cc5c
int64_t v4; // 0x14000cc5c
uint64_t result = function_14000fe7c((int64_t *)&v1, v4, v3, v2); // 0x14000cc6a
if (result >= 5) {
// 0x14000cc8f
return result;
}
if (a1 != 0) {
uint32_t v5 = v1; // 0x14000cc75
*(int16_t *)a1 = (int16_t)(v5 < 0x10000 ? v5 : 0xfffd);
}
// 0x14000cc8f
return result;
}
// Address range: 0x14000cc98 - 0x14000ce0e
int64_t function_14000cc98(int32_t * a1, int64_t * a2, int64_t a3, int64_t * a4, int64_t a5, int64_t * a6) {
int64_t v1 = (int64_t)a4;
int64_t v2 = (int64_t)a2;
int64_t v3 = a5;
int64_t v4 = v2; // 0x14000ccc4
int64_t v5 = 0; // 0x14000ccc4
if (a1 == NULL) {
int64_t result; // 0x14000cc98
while (true) {
lab_0x14000cdbb:;
int64_t v6 = v4;
int64_t v7 = 1; // 0x14000cdbe
if (*(char *)v6 != 0) {
// 0x14000cdc8
v7 = 2;
if (*(char *)(v6 + 1) != 0) {
// 0x14000cdd6
v7 = *(char *)(v6 + 2) == 0 ? 3 : 4;
}
}
int64_t v8 = function_14000fe7c(NULL, v6, v7, v1); // 0x14000cded
result = v5;
switch (v8) {
case -1: {
goto lab_0x14000cd91;
}
case 0: {
return result;
}
default: {
// 0x14000cdfd
v4 = v8 + v6;
v5 = v5 + 1 + (int64_t)(v8 == 4);
goto lab_0x14000cdbb;
}
}
}
// 0x14000cda0
return result;
}
int64_t v9 = (int64_t)a1;
int64_t v10 = v9; // 0x14000ccd0
int64_t v11 = a3; // 0x14000ccd0
int64_t v12 = v2; // 0x14000ccd0
int64_t v13 = v9; // 0x14000ccd0
int64_t v14 = v2; // 0x14000ccd0
if (a3 == 0) {
goto lab_0x14000cd77_2;
lab_0x14000cd77_2:
// 0x14000cd77
*a2 = v14;
// 0x14000cda0
return (v13 - v9) / 2;
}
int64_t v15; // 0x14000cc98
while (true) {
lab_0x14000ccd6:
// 0x14000ccd6
v15 = v12;
int64_t v16 = v11;
int64_t v17 = v10;
int64_t v18 = 1; // 0x14000ccd9
if (*(char *)v15 != 0) {
// 0x14000cce3
v18 = 2;
if (*(char *)(v15 + 1) != 0) {
// 0x14000ccf1
v18 = *(char *)(v15 + 2) == 0 ? 3 : 4;
}
}
int64_t v19 = function_14000fe7c(&v3, v15, v18, v1); // 0x14000cd0b
switch (v19) {
case -1: {
goto lab_0x14000cd8e;
}
case 0: {
// 0x14000cd85
*(int16_t *)v17 = 0;
v13 = v17;
v14 = 0;
goto lab_0x14000cd77_2;
}
default: {
int64_t v20 = v3 & 0xffffffff; // 0x14000cd1e
int64_t v21 = v20; // 0x14000cd28
int64_t v22 = v17; // 0x14000cd28
int64_t v23 = v16; // 0x14000cd28
if ((int32_t)v3 >= 0x10000) {
// 0x14000cd2a
v13 = v17;
v14 = v15;
if (v16 < 2) {
goto lab_0x14000cd77_2;
}
uint64_t v24 = v20 + 0xffff0000; // 0x14000cd30
v3 = 0x100000000 * v24 / 0x100000000;
*(int16_t *)v17 = (int16_t)(v24 / 1024) | -0x2800;
v21 = v24 & 0xffff03ff | 0xdc00;
v22 = v17 + 2;
v23 = v16 - 1;
}
// 0x14000cd63
*(int16_t *)v22 = (int16_t)v21;
v12 = v19 + v15;
v10 = v22 + 2;
v11 = v23 - 1;
v13 = v10;
v14 = v12;
if (v11 == 0) {
goto lab_0x14000cd77_2;
}
goto lab_0x14000ccd6;
}
}
}
lab_0x14000cd8e:
// 0x14000cd8e
*a2 = v15;
lab_0x14000cd91:
// 0x14000cd91
*_errno() = 42;
// 0x14000cda0
return -1;
}
// Address range: 0x14000ce10 - 0x14000cec3
int64_t function_14000ce10(int64_t a1, int16_t a2, int64_t * a3) {
if (a1 == 0) {
// 0x14000ce19
*a3 = 0;
// 0x14000cebe
return 1;
}
if (a2 == 0) {
// 0x14000ce2b
*(char *)a1 = (char)a2;
// 0x14000ce19
*a3 = 0;
// 0x14000cebe
return 1;
}
int64_t v1 = a2;
if ((v1 & 0xffffff80) == 0) {
// 0x14000ce37
*(char *)a1 = (char)a2;
// 0x14000cebe
return 1;
}
int64_t v2 = 1; // 0x14000ce41
int64_t v3 = 192; // 0x14000ce41
if ((v1 & 0xfffff800) != 0) {
// 0x14000ce4e
v2 = 2;
v3 = 224;
if ((v1 & 0xffff0000) != 0) {
// 0x14000ce6e
v2 = 3;
v3 = 240;
if (a2 > -1 != ((v1 & 0xffe00000) == 0)) {
// 0x14000ceab
*a3 = 0;
*_errno() = 42;
// 0x14000cebe
return -1;
}
}
}
int64_t v4 = v2; // 0x14000ce87
uint64_t v5 = v1 / 64; // 0x14000ce8c
*(char *)(v4 + a1) = (char)v1 & 63 | -128;
v4--;
int64_t v6 = v5 & 0x3ffffff; // 0x14000ce9b
while (v4 != 0) {
// 0x14000ce8a
v5 = v6 / 64;
*(char *)(v4 + a1) = (char)v6 & 63 | -128;
v4--;
v6 = v5 & 0x3ffffff;
}
// 0x14000ce9d
*(char *)a1 = (char)(v5 | v3);
*a3 = v4 & (int64_t)a3;
// 0x14000cebe
return v2 + 1;
}
// Address range: 0x14000cec4 - 0x14000d01f
int64_t function_14000cec4(int64_t a1, uint64_t a2, int64_t a3, int64_t * a4, int64_t a5, int64_t a6) {
int64_t v1 = (int64_t)a4;
int64_t v2 = v1;
int64_t v3 = a1;
char v4; // 0x14000cec4
int64_t v5; // 0x14000cec4
int32_t * v6; // 0x14000cec4
int64_t result; // 0x14000cec4
if (a1 == 0 || a2 == 0) {
goto lab_0x14000cee7;
} else {
// 0x14000cf04
*(char *)a1 = 0;
int32_t v7 = a3;
if ((v7 >= 0 == (v7 != 0) ? (0x100000000 * a3 + 0x100000000) / 0x100000000 : 1) < a2) {
if (a4 == NULL) {
goto lab_0x14000cee7;
} else {
int64_t v8 = *(int64_t *)(v2 + 8); // 0x14000cf2a
*(char *)v3 = 48;
int64_t v9 = v3 + 1;
int64_t v10 = v8; // 0x14000cf4f
v5 = v9;
bool v11 = v7 < 0; // 0x14000cf4f
if (v7 >= 0 == (v7 != 0)) {
char v12 = *(char *)v8; // 0x14000cf37
int64_t v13 = v8 + (int64_t)(v12 != 0);
*(char *)v9 = v12 == 0 ? 48 : v12;
int64_t v14 = a3 + 0xffffffff; // 0x14000cf49
int64_t v15 = v9 + 1;
int32_t v16 = v14; // 0x14000cf4c
int64_t v17 = v15; // 0x14000cf4f
int64_t v18 = v14 & 0xffffffff; // 0x14000cf4f
int64_t v19 = v13; // 0x14000cf4f
v10 = v13;
v5 = v15;
v11 = v16 < 0;
while (v16 >= 0 == (v16 != 0)) {
// 0x14000cf37
v12 = *(char *)v19;
v13 = v19 + (int64_t)(v12 != 0);
*(char *)v17 = v12 == 0 ? 48 : v12;
v14 = v18 + 0xffffffff;
v15 = v17 + 1;
v16 = v14;
v17 = v15;
v18 = v14 & 0xffffffff;
v19 = v13;
v10 = v13;
v5 = v15;
v11 = v16 < 0;
}
}
// 0x14000cf51
*(char *)v5 = 0;
if (v11) {
goto lab_0x14000cfda;
} else {
if ((int32_t)a6 != 0) {
int32_t v20 = function_14000e718(v3); // 0x14000cf71
if (v20 != 0) {
int32_t v21 = *(int32_t *)&v2; // 0x14000cf5f
if (v20 != 512) {
if (v20 != 256) {
goto lab_0x14000cfda;
} else {
// 0x14000cfb6
if (v21 != 45 | *(char *)v10 == 48) {
goto lab_0x14000cfda;
} else {
goto lab_0x14000cfcd;
}
}
} else {
// 0x14000cfa5
if (v21 == 45 | *(char *)v10 == 48) {
goto lab_0x14000cfda;
} else {
goto lab_0x14000cfcd;
}
}
} else {
char v22 = *(char *)v10; // 0x14000cf75
if (v22 > 53) {
goto lab_0x14000cfcd;
} else {
if (v22 == 53) {
// 0x14000cf7c
if ((int32_t)a5 == 0) {
goto lab_0x14000cfcd;
} else {
int64_t v23 = v10 + 1;
unsigned char v24 = *(char *)v23; // 0x14000cf8c
int64_t v25 = v3 & -256 | (int64_t)v24; // 0x14000cf8c
v3 = v25;
int64_t v26 = v25; // 0x14000cf91
int64_t v27 = v23; // 0x14000cf91
while (v24 == 48) {
// 0x14000cf8c
v23 = v27 + 1;
v24 = *(char *)v23;
v25 = v26 & -256 | (int64_t)v24;
v3 = v25;
v26 = v25;
v27 = v23;
}
if (v24 != 0) {
goto lab_0x14000cfcd;
} else {
// 0x14000cf97
v4 = *(char *)(v10 - 1) & 1;
goto lab_0x14000cfc4;
}
}
} else {
goto lab_0x14000cfda;
}
}
}
} else {
char v28 = *(char *)v10; // 0x14000cf64
v4 = v28 < 53 == (52 - v28 & v28) < 0;
goto lab_0x14000cfc4;
}
}
}
} else {
// 0x14000cf19
v6 = _errno();
result = 34;
goto lab_0x14000cef1;
}
}
lab_0x14000cee7:
// 0x14000cee7
v6 = _errno();
result = 22;
goto lab_0x14000cef1;
lab_0x14000cef1:
// 0x14000cef1
*v6 = (int32_t)result;
function_140006270(v3, a2, a3, v2);
// 0x14000d006
return result;
lab_0x14000cfda:;
int64_t v29 = -1; // 0x14000cfde
if (*(char *)&v3 == 49) {
int32_t * v30 = (int32_t *)(v1 + 4); // 0x14000cfe0
*v30 = *v30 + 1;
// 0x14000d006
return 0;
}
int64_t v31 = v29 + 2; // 0x14000cfed
v29++;
while (*(char *)(v31 + a1) != 0) {
// 0x14000cfea
v31 = v29 + 2;
v29++;
}
// 0x14000cff5
function_140002760(a1, a1 + 1, v31, v2);
// 0x14000d006
return 0;
lab_0x14000cfc4:
// 0x14000cfc4
if (v4 == 0) {
goto lab_0x14000cfda;
} else {
goto lab_0x14000cfcd;
}
lab_0x14000cfcd:;
int64_t v32 = v5 - 1; // 0x14000cfcd
char * v33 = (char *)v32; // 0x14000cfd0
char v34 = *v33; // 0x14000cfd0
char * v35 = v33; // 0x14000cfd4
char v36 = v34; // 0x14000cfd4
if (v34 == 57) {
*v33 = 48;
int64_t v37 = v32 - 1; // 0x14000cfcd
char * v38 = (char *)v37;
char v39 = *v38; // 0x14000cfd0
int64_t v40 = v37; // 0x14000cfd4
v35 = v38;
v36 = v39;
while (v39 == 57) {
// 0x14000cfca
*v38 = 48;
v37 = v40 - 1;
v38 = (char *)v37;
v39 = *v38;
v40 = v37;
v35 = v38;
v36 = v39;
}
}
// 0x14000cfd6
*v35 = v36 + 1;
goto lab_0x14000cfda;
}
// Address range: 0x14000d020 - 0x14000d449
int64_t function_14000d020(int32_t * a1, int32_t * a2) {
int64_t v1 = (int64_t)a1;
int32_t v2 = v1;
if (v2 == 0) {
// 0x14000d437
return 0;
}
int64_t v3 = (int64_t)a2;
uint32_t v4 = (int32_t)v3;
if (v4 == 0) {
// 0x14000d437
return 0;
}
uint32_t v5 = v2 - 1;
int64_t v6 = v5; // 0x14000d052
if (v4 == 1) {
uint32_t v7 = *(int32_t *)(v3 + 4); // 0x14000d060
int64_t v8; // bp-532, 0x14000d020
if (v7 == 1) {
int64_t v9 = v1 + 4; // 0x14000d06c
*a1 = 0;
memcpy_s((int64_t *)v9, 460, &v8, 0);
// 0x14000d437
return (int64_t)*(int32_t *)v9;
}
uint64_t v10 = (int64_t)v7; // 0x14000d060
int64_t v11 = v1 + 4;
if (v5 == 0) {
int32_t * v12 = (int32_t *)v11;
uint32_t v13 = *v12; // 0x14000d097
*a1 = 0;
memcpy_s((int64_t *)v11, 460, &v8, 0);
uint32_t v14 = v13 % v7;
*v12 = v14;
*a1 = (int32_t)(v14 != 0);
// 0x14000d437
return v13 / v7;
}
int64_t v15 = v6 + 0xffffffff; // 0x14000d0ec
uint64_t v16 = (int64_t)*(int32_t *)(4 * v6 + v11); // 0x14000d0ef
int64_t v17 = v16 % v10;
int64_t result = v16 / v10 & 0xffffffff; // 0x14000d0fe
int64_t v18 = result; // 0x14000d104
int64_t v19 = v15 & 0xffffffff; // 0x14000d104
while ((int32_t)v15 != -1) {
// 0x14000d0e1
v15 = v19 + 0xffffffff;
v16 = 0x100000000 * v17 | (int64_t)*(int32_t *)(4 * v19 + v11);
v17 = v16 % v10;
result = v16 / v10 & 0xffffffff | 0x100000000 * v18;
v18 = result;
v19 = v15 & 0xffffffff;
}
// 0x14000d106
*a1 = 0;
memcpy_s((int64_t *)v11, 460, &v8, 0);
*(int32_t *)v11 = (int32_t)v17;
*(int32_t *)(v1 + 8) = 0;
*a1 = 1;
// 0x14000d437
return result;
}
uint32_t v20 = v4 - 1;
if (v20 > v5) {
// 0x14000d437
return 0;
}
int64_t v21 = v5; // 0x14000d14e
int64_t v22 = v6 - (int64_t)v20; // 0x14000d151
int64_t v23 = 0x100000000 * v22;
int64_t v24 = v23 / 0x100000000; // 0x14000d157
int64_t v25; // 0x14000d020
if (v24 > v21) {
// 0x14000d1a8
v25 = v22 + 1;
goto lab_0x14000d1ab;
} else {
int64_t v26 = v1 + 4;
int64_t v27 = v21; // 0x14000d174
int64_t v28 = v26 + 4 * v21; // 0x14000d174
int64_t v29 = v6;
int32_t v30 = *(int32_t *)(v3 - v1 - v23 / 0x40000000 + v28); // 0x14000d17a
while (v30 == *(int32_t *)v28) {
uint64_t v31 = v27; // 0x14000d183
v27 = v31 - 1;
v28 -= 4;
if (v31 <= v24) {
// 0x14000d1a8
v25 = v22 + 1;
goto lab_0x14000d1ab;
}
v29 = v29 + 0xffffffff & 0xffffffff;
v30 = *(int32_t *)(v3 - v1 - v23 / 0x40000000 + v28);
}
uint32_t v32 = *(int32_t *)(v3 + 4 + 0x100000000 * (v29 - v22) / 0x40000000); // 0x14000d1a1
v25 = v22;
if (v32 >= *(int32_t *)(v26 + 0x100000000 * v29 / 0x40000000)) {
goto lab_0x14000d1ab;
} else {
// 0x14000d1a8
v25 = v22 + 1;
goto lab_0x14000d1ab;
}
}
lab_0x14000d304:;
// 0x14000d304
int64_t v33; // 0x14000d020
int64_t v34 = v33;
int64_t v35; // 0x14000d020
int64_t v36 = v35;
int64_t v37; // 0x14000d020
uint64_t v38 = v33 * v37;
int64_t v39 = v34; // 0x14000d31e
int64_t v40; // 0x14000d020
uint64_t v41; // 0x14000d249
while (v38 > (0x100000000 * v36 || v40)) {
int64_t v42 = v34 - 1; // 0x14000d320
int64_t v43 = v36 + v41; // 0x14000d326
int64_t v44 = v38 - v37; // 0x14000d32c
int64_t v45 = v43; // 0x14000d32c
int64_t v46 = v42; // 0x14000d32c
v39 = v42;
if (v43 >= 0x100000000) {
// break -> 0x14000d32e
break;
}
v34 = v46;
v36 = v45;
v38 = v44;
v39 = v34;
}
int64_t v47 = v39; // 0x14000d331
int64_t v48 = 0; // 0x14000d331
int64_t v49; // 0x14000d020
int64_t v50 = v49; // 0x14000d331
if (v39 == 0) {
goto lab_0x14000d3e1;
} else {
goto lab_0x14000d341;
}
lab_0x14000d341:;
int64_t v51 = v47;
int64_t v52 = 0; // 0x14000d34d
int64_t v53 = v3 + 4;
uint64_t v54 = v51 * (int64_t)*(int32_t *)v53; // 0x14000d35a
int64_t v55; // 0x14000d020
int64_t v56; // 0x14000d020
int32_t * v57 = (int32_t *)((4 * (v52 + v55) & 0x3fffffffc) + v56); // 0x14000d36a
uint32_t v58 = *v57; // 0x14000d36a
uint32_t v59 = (int32_t)v54; // 0x14000d374
int64_t v60 = v54 / 0x100000000 + (int64_t)(v58 < v59); // 0x14000d377
int64_t v61 = v52 + 1; // 0x14000d37e
*v57 = v58 - v59;
int64_t v62 = v53; // 0x14000d388
v52 = v61 & 0xffffffff;
while (v4 > (int32_t)v61) {
// 0x14000d350
v53 = v62 + 4;
v54 = v51 * (int64_t)*(int32_t *)v53 + v60;
v57 = (int32_t *)((4 * (v52 + v55) & 0x3fffffffc) + v56);
v58 = *v57;
v59 = (int32_t)v54;
v60 = v54 / 0x100000000 + (int64_t)(v58 < v59);
v61 = v52 + 1;
*v57 = v58 - v59;
v62 = v53;
v52 = v61 & 0xffffffff;
}
int64_t v63 = 0; // 0x14000d399
int64_t v64 = v51; // 0x14000d399
uint64_t v65; // 0x14000d020
if (v65 < v60) {
int64_t v66 = v3 + 4;
int64_t v67 = v63 + 1; // 0x14000d3b5
int32_t * v68 = (int32_t *)((4 * (v63 + v55) & 0x3fffffffc) + v56);
uint64_t v69 = (int64_t)*v68 + (int64_t)*(int32_t *)v66; // 0x14000d3ca
*v68 = (int32_t)v69;
int64_t v70 = v69 / 0x100000000; // 0x14000d3d8
v63 = v67 & 0xffffffff;
int64_t v71 = v66; // 0x14000d3d8
while (v4 > (int32_t)v67) {
// 0x14000d3b1
v66 = v71 + 4;
v67 = v63 + 1;
v68 = (int32_t *)((4 * (v63 + v55) & 0x3fffffffc) + v56);
v69 = v70 + (int64_t)*v68 + (int64_t)*(int32_t *)v66;
*v68 = (int32_t)v69;
v70 = v69 / 0x100000000;
v63 = v67 & 0xffffffff;
v71 = v66;
}
// 0x14000d3da
v64 = v51 - 1;
}
// 0x14000d3dd
v48 = v64;
int64_t v72; // 0x14000d020
v50 = v72 + 0xffffffff & 0xffffffff;
goto lab_0x14000d3e1;
lab_0x14000d3e1:;
// 0x14000d3e1
int64_t v73; // 0x14000d020
int64_t v74 = v48 & 0xffffffff | 0x100000000 * v73; // 0x14000d3eb
int32_t v75 = (int32_t)v55 - 1; // 0x14000d3ee
int64_t v76 = v50; // 0x14000d3f2
v73 = v74;
int64_t v77; // 0x14000d020
int64_t v78 = v77 + 0xffffffff; // 0x14000d3f2
int64_t v79 = v75; // 0x14000d3f2
int64_t v80 = v50; // 0x14000d3f2
int64_t result2 = v74; // 0x14000d3f2
if (v75 < 0) {
// break -> 0x14000d400
goto lab_0x14000d400;
}
goto lab_0x14000d262;
lab_0x14000d1ab:;
int64_t v100 = v25 & 0xffffffff;
if (v100 == 0) {
// 0x14000d437
return 0;
}
int64_t v101 = v3 & 0xffffffff; // 0x14000d048
int64_t v102 = 4 * v101; // 0x14000d1b4
int64_t v103 = v3 + 4; // 0x14000d1bc
uint32_t v104 = *(int32_t *)((v102 + 0x3fffffffc & 0x3fffffffc) + v103); // 0x14000d1bc
int64_t v105 = v104; // 0x14000d1bc
int64_t v106 = v101 + 0xfffffffe; // 0x14000d1c1
uint32_t v107 = *(int32_t *)((4 * v106 & 0x3fffffffc) + v103); // 0x14000d1c4
uint32_t v108 = v104 == 0 ? (int32_t)v106 : llvm_ctlz_i32(v104, true) ^ 31; // 0x14000d1c9
int64_t v92 = v104 == 0 ? 32 : 31 - (int64_t)v108;
int64_t v91 = 32 - (v92 & 0xffffffff); // 0x14000d1e4
int32_t v89 = v92;
int32_t v96 = v91; // 0x14000d1ef
int32_t v109 = v107; // 0x14000d1f6
int64_t v110 = v105; // 0x14000d1f6
if (v89 != 0) {
uint32_t v111 = v96 & 31; // 0x14000d1ff
uint32_t v112 = v89 & 31;
int32_t v113 = v107 << v112;
int64_t v114 = (v112 == 0 ? v105 : (int64_t)(v104 << v112)) | (int64_t)(v107 >> v111); // 0x14000d20b
v109 = v113;
v110 = v114;
if (v4 >= 3) {
uint32_t v115 = *(int32_t *)((v102 + 0x3fffffff4 & 0x3fffffffc) + v103); // 0x14000d21f
v109 = v115 >> v111 | v113;
v110 = v114;
}
}
int64_t v116 = v100 + 0xffffffff; // 0x14000d231
v80 = v6;
result2 = 0;
if ((int32_t)v116 >= 0) {
// 0x14000d241
v37 = v109;
v41 = v110 & 0xffffffff;
v56 = v1 + 4;
uint32_t v94 = v89 & 31;
v76 = v6;
v73 = 0;
v78 = v116 + v101;
v79 = v116 & 0xffffffff;
while (true) {
lab_0x14000d262:
// 0x14000d262
v55 = v79;
v72 = v78;
v49 = v76;
v77 = v72 & 0xffffffff;
uint32_t v81 = (int32_t)v72; // 0x14000d262
int64_t v82 = 4 * v77;
int64_t v83 = 0; // 0x14000d265
if (v81 <= (int32_t)v49) {
// 0x14000d267
v83 = (int64_t)*(int32_t *)(v82 + v56);
}
// 0x14000d270
v65 = v83;
uint32_t v84 = *(int32_t *)((v82 + 0x3fffffff8 & 0x3fffffffc) + v56); // 0x14000d283
int64_t v85 = v84; // 0x14000d283
int64_t v86 = (int64_t)*(int32_t *)((v82 + 0x3fffffffc & 0x3fffffffc) + v56);
int64_t v87 = v86; // 0x14000d29a
int64_t v88 = v85; // 0x14000d29a
if (v89 != 0) {
int64_t v90 = v85 >> (v91 & 63) | v86 << (v92 & 63); // 0x14000d2b1
int64_t v93 = v94 == 0 ? v85 : (int64_t)(v84 << v94);
v87 = v90;
v88 = v93;
if (v81 >= 3) {
uint32_t v95 = *(int32_t *)((v82 + 0x3fffffff4 & 0x3fffffffc) + v56); // 0x14000d2c5
v87 = v90;
v88 = v95 >> (v96 & 31) | (int32_t)v93;
}
}
// 0x14000d2d5
v40 = v88;
uint64_t v97 = v87 / v41; // 0x14000d2da
int64_t v98 = v87 % v41;
v33 = v97;
v35 = v98;
if (v97 > 0xffffffff) {
int64_t v99 = (v97 - 0xffffffff) * v41 + v98; // 0x14000d2fc
v33 = 0xffffffff;
v35 = v99;
v47 = 0xffffffff;
if (v99 > 0xffffffff) {
goto lab_0x14000d341;
} else {
goto lab_0x14000d304;
}
} else {
goto lab_0x14000d304;
}
}
}
lab_0x14000d400:;
int64_t v117 = v80 + 1; // 0x14000d400
int32_t v118 = v117; // 0x14000d406
*a1 = v118;
if (v118 == 0) {
// 0x14000d437
return result2;
}
int64_t v119 = (v117 & 0xffffffff) + 0xffffffff; // 0x14000d422
int64_t v120 = v119 & 0xffffffff; // 0x14000d422
while (*(int32_t *)(v1 + 4 + 4 * v120) == 0) {
int32_t v121 = v119; // 0x14000d42a
*a1 = v121;
if (v121 == 0) {
// break -> 0x14000d437
break;
}
v119 = v120 + 0xffffffff;
v120 = v119 & 0xffffffff;
}
// 0x14000d437
return result2;
}
// Address range: 0x14000d44c - 0x14000e690
int64_t function_14000d44c(int64_t a1, int64_t a2, int64_t * a3, int64_t a4, int64_t a5) {
// 0x14000d44c
int32_t v1; // bp-1984, 0x14000d44c
function_1400100b8((int64_t *)&v1);
char v2 = 0; // 0x14000d4a5
if ((v1 & 31) != 31) {
// 0x14000d4ae
function_140010124((int64_t *)&v1);
v2 = 1;
}
int64_t v3 = (int64_t)a3;
*(int64_t *)(v3 + 8) = a4;
*(int32_t *)a3 = a1 < 0 ? 45 : 32;
int32_t v4; // bp-1968, 0x14000d44c
function_140010054((int64_t *)&v4, 0, 0);
int64_t v5 = a1 / 0x10000000000000 & 2047; // 0x14000d501
int64_t v6; // 0x14000d44c
if (v5 != 0) {
goto lab_0x14000d53e;
} else {
if ((a1 & 0xfffffffffffff) == 0) {
// 0x14000d515
*(int32_t *)(v3 + 4) = 0;
v6 = (int64_t)&g22;
goto lab_0x14000d522;
} else {
// 0x14000d50b
if ((v4 & 0x1000000) == 0) {
goto lab_0x14000d53e;
} else {
// 0x14000d515
*(int32_t *)(v3 + 4) = 0;
v6 = (int64_t)&g22;
goto lab_0x14000d522;
}
}
}
lab_0x14000e040:;
// 0x14000e040
int64_t v7; // 0x14000d44c
int32_t v8 = v7; // bp-1928, 0x14000e040
int64_t v9; // 0x14000d44c
int64_t v10 = v9; // 0x14000e044
int64_t v11 = v7; // 0x14000e044
goto lab_0x14000e316;
lab_0x14000e316:;
// 0x14000e316
int64_t v12; // 0x14000d44c
int32_t v13; // 0x14000d44c
int32_t v14 = v13 - (int32_t)v12; // 0x14000e321
v13 = v14;
int64_t v15 = v14; // 0x14000e32e
int64_t v16 = v10; // 0x14000e32e
int64_t v17 = v11; // 0x14000e32e
int32_t v18; // 0x14000d44c
int32_t v19 = v18; // 0x14000e32e
int64_t v20 = v11; // 0x14000e32e
if (v14 == 0) {
// break -> 0x14000e33c
goto lab_0x14000e33c;
}
goto lab_0x14000dfb2;
lab_0x14000e087:;
// 0x14000e087
int64_t v108; // 0x14000d44c
int64_t v117 = v108;
int64_t v107; // 0x14000d44c
int64_t v118 = v107;
int64_t v95 = v117; // 0x14000e08a
int64_t v88; // 0x14000d44c
int64_t v87; // 0x14000d44c
int64_t v102; // 0x14000d44c
if (v118 == 0) {
goto lab_0x14000e307;
} else {
uint32_t v119 = v8; // 0x14000e090
if (v119 >= 115) {
// 0x14000e30e
v8 = 0;
// 0x14000e3c2
v8 = 0;
v87 = v88;
goto lab_0x14000e3f2;
}
// 0x14000e096
*(int32_t *)(4 * (int64_t)v119 + v102) = (int32_t)v118;
v9 = v117;
v7 = v8 + 1;
goto lab_0x14000e040;
}
lab_0x14000e307:
// 0x14000e307
v10 = v95;
v11 = v8;
goto lab_0x14000e316;
lab_0x14000df7e_2:;
// 0x14000df7e
int64_t v120; // 0x14000d44c
int32_t v121 = v120; // bp-1464, 0x14000df7e
int64_t v122 = v120; // 0x14000df85
int64_t v123; // 0x14000d44c
int64_t v124 = v123; // 0x14000df85
goto lab_0x14000df20;
lab_0x14000db62:;
// 0x14000db62
int64_t v282; // 0x14000d44c
v121 = v282;
int64_t v281; // 0x14000d44c
int64_t v223 = v281; // 0x14000db69
int64_t v224 = v282; // 0x14000db69
goto lab_0x14000de73;
lab_0x14000de73:;
// 0x14000de73
int64_t v213; // 0x14000d44c
int32_t v206; // 0x14000d44c
int32_t v356 = v206 - (int32_t)v213; // 0x14000de7e
v206 = v356;
int64_t v207 = v356; // 0x14000de8c
int64_t v208 = v223; // 0x14000de8c
int64_t v209 = v224; // 0x14000de8c
int32_t v201; // 0x14000d44c
int32_t v198 = v201; // 0x14000de8c
int64_t v199 = v224; // 0x14000de8c
if (v356 == 0) {
// break -> 0x14000de96
goto lab_0x14000de96;
}
goto lab_0x14000dad4;
lab_0x14000dbb2:;
// 0x14000dbb2
int64_t v292; // 0x14000d44c
int64_t v357 = v292;
int64_t v291; // 0x14000d44c
int64_t v358 = v291;
int64_t v278 = v357; // 0x14000dbb5
int64_t v203; // 0x14000d44c
if (v358 == 0) {
goto lab_0x14000de61;
} else {
uint32_t v359 = v121; // 0x14000dbbb
if (v359 >= 115) {
// 0x14000de6b
v121 = 0;
v120 = 0;
goto lab_0x14000df7e_2;
}
// 0x14000dbc4
*(int32_t *)(4 * (int64_t)v359 + v203) = (int32_t)v358;
v281 = v357;
v282 = v121 + 1;
goto lab_0x14000db62;
}
lab_0x14000de61:
// 0x14000de61
v223 = v278;
v224 = v121;
goto lab_0x14000de73;
lab_0x14000d53e:;
int64_t v318; // 0x14000d44c
int64_t v322; // 0x14000d44c
int64_t v312; // 0x14000d44c
int64_t v181; // 0x14000d44c
int64_t v315; // 0x14000d44c
int64_t v313; // 0x14000d44c
int64_t v343; // 0x14000d44c
int64_t v179; // 0x14000d44c
int64_t v180; // 0x14000d44c
int64_t v347; // 0x14000d44c
int64_t v177; // 0x14000d44c
int64_t v325; // 0x14000d44c
int64_t v349; // 0x14000d44c
int128_t v151; // bp-1460, 0x14000d44c
int128_t v36; // bp-1924, 0x14000d44c
int128_t v29; // bp-996, 0x14000d44c
int32_t v320; // 0x14000d44c
int32_t v337; // 0x14000d701
int64_t v340; // 0x14000d60f
int64_t v330; // 0x14000d6be
uint32_t v332; // 0x14000d72e
uint32_t v335; // 0x14000d736
int32_t v182; // 0x14000d61c
int64_t v345; // 0x14000d645
int32_t v338; // 0x14000d44c
int64_t v351; // 0x14000d89f
int64_t v344; // 0x14000d8a4
int64_t v127; // 0x14000d457
int64_t v317; // 0x14000d6ad
int64_t v316; // 0x14000d6f0
if (v5 == 2047) {
int64_t v360 = a1 & 0xfffffffffffff; // 0x14000d54a
if (v360 != 0) {
// 0x14000d554
*(int32_t *)(v3 + 4) = 1;
v6 = (int64_t)"1#IND";
if (a1 < 0 != (v360 == 0x8000000000000)) {
int64_t v361 = (a1 & 0x8000000000000) == 0 ? (int64_t)"1#SNAN" : (int64_t)"1#QNAN";
v6 = v361;
}
goto lab_0x14000d522;
} else {
// 0x14000d583
*(int32_t *)(v3 + 4) = 1;
if (strcpy_s((char *)a4, (int32_t)a5, "1#INF") != 0) {
// 0x14000e67a
function_140006290(0, 0, 0, 0, 0);
return __asm_int3();
}
goto lab_0x14000e645;
}
} else {
// 0x14000d5a7
int64_t v362; // bp-1832, 0x14000d44c
v127 = &v362;
int128_t v363 = __asm_movsd(a1 & 0x7fffffffffffffff); // 0x14000d5c0
uint64_t v364 = __asm_movsd_8(v363); // 0x14000d5c6
int64_t v365 = v364 / 0x10000000000000 & 2047; // 0x14000d5e4
int64_t v366 = v365 == 0 ? 0 : 0x10000000000000; // 0x14000d5fd
v340 = (v365 == 0 ? 2 : 1) + v365;
float64_t v367 = log10((float64_t)(int64_t)v363); // 0x14000d612
v182 = __asm_cvttsd2si((int128_t)(int32_t)(float32_t)ceil(v367));
v36 = v364;
v345 = (v366 | v364 & 0xfffff00000000) == 0 ? 1 : 2;
v338 = v345;
v8 = v338;
if ((int32_t)v340 < 1076) {
if (v340 != 54) {
// 0x14000d87c
v29 = 0;
if ((v366 || v364 & 0xfffff00000000) != 0) {
// 0x14000d89f
v351 = v127 - 92;
v344 = v127 + 836;
int64_t v368 = 0; // 0x14000d44c
while (*(int32_t *)(4 * v368 + v344) == *(int32_t *)(4 * v368 + v351)) {
int64_t v369 = v368 + 1; // 0x14000d8b2
v368 = v369 & 0xffffffff;
if ((int32_t)v369 == 2) {
int64_t v370 = v345 + 0xffffffff; // 0x14000d96b
v343 = 0xfffffffffffff;
v347 = v370;
v349 = v345;
if ((int32_t)v370 == -1) {
goto lab_0x14000d8e9;
} else {
goto lab_0x14000d978;
}
}
}
}
}
int64_t v371 = v127 - 92; // 0x14000d9c9
int32_t v372 = *(int32_t *)(((v366 | v364 & 0xfffff00000000) == 0 ? 0 : 4) + v371); // 0x14000d9c9
int64_t v373 = v345 + (int64_t)(v372 < 0); // 0x14000d9e6
int64_t v374 = v373 + 0xffffffff; // 0x14000da31
int64_t v375 = 0xfffffffffffff; // 0x14000da38
if ((int32_t)v374 != -1) {
int64_t v376 = v374 & 0xffffffff;
uint32_t v377 = (int32_t)v345; // 0x14000da41
int64_t v378 = 0; // 0x14000da43
if ((int32_t)v374 < v377) {
// 0x14000da45
v378 = (int64_t)*(int32_t *)(4 * v376 + v371);
}
int64_t v379 = v374 + 0xffffffff; // 0x14000da3d
int64_t v380 = v379 & 0xffffffff; // 0x14000da3d
uint32_t v381 = (int32_t)v379; // 0x14000da4f
int32_t v382 = 0; // 0x14000da52
if (v381 < v377) {
// 0x14000da54
v382 = *(int32_t *)(4 * v380 + v371);
}
// 0x14000da5d
*(int32_t *)(4 * v376 + v371) = v382 >> 31 | 2 * (int32_t)v378;
v375 = v378;
while (v381 != -1) {
// 0x14000da77
v376 = v380 & 0xffffffff;
v377 = (int32_t)(int64_t)v8;
v378 = 0;
if ((int32_t)v380 < v377) {
// 0x14000da45
v378 = (int64_t)*(int32_t *)(4 * v376 + v371);
}
// 0x14000da4f
v379 = v380 + 0xffffffff;
v380 = v379 & 0xffffffff;
v381 = (int32_t)v379;
v382 = 0;
if (v381 < v377) {
// 0x14000da54
v382 = *(int32_t *)(4 * v380 + v371);
}
// 0x14000da5d
*(int32_t *)(4 * v376 + v371) = v382 >> 31 | 2 * (int32_t)v378;
v375 = v378;
}
}
// 0x14000d9f2
v8 = v373;
uint64_t v383 = 1077 - v340; // 0x14000d9fb
int64_t v384 = v383 / 32 & 0x7ffffff; // 0x14000da09
int64_t v385 = 4 * v384; // 0x14000da0e
function_140001e50((int64_t *)&v29, 0, v385, v375);
*(int32_t *)(v127 + 836 + v385) = 1 << ((int32_t)v383 & 31);
v177 = v384;
v179 = v375;
v181 = v373;
goto lab_0x14000d923;
} else {
// 0x14000d658
v29 = 0;
v318 = v127 - 92;
if ((v366 || v364 & 0xfffff00000000) != 0) {
int64_t v386 = 0; // 0x14000d44c
while (*(int32_t *)(v127 + 836 + 4 * v386) == *(int32_t *)(4 * v386 + v318)) {
int64_t v387 = v386 + 1; // 0x14000d68e
v386 = v387 & 0xffffffff;
if ((int32_t)v387 == 2) {
uint64_t v388 = v340 + 0xfffffbce; // 0x14000d69b
v317 = v388 / 32 & 0x7ffffff;
int64_t v389 = v317 + v345;
v313 = 0xfffffffffffff;
v312 = 0;
if ((int32_t)v389 < 116) {
int64_t v390 = v388 & 31; // 0x14000d6a9
int32_t v391 = *(int32_t *)((4 * v345 + 0x3fffffffc & 0x3fffffffc) + v318); // 0x14000d6c1
v316 = v389 + (int64_t)(llvm_ctlz_i32(v391, false) < (int32_t)v390);
v313 = 0xfffffffffffff;
v312 = 0;
if ((int32_t)v316 < 116) {
int64_t v392 = v316 + 0xffffffff; // 0x14000d6fd
v320 = v317;
v337 = v320 - 1;
v315 = 0xfffffffffffff;
if (v337 == (int32_t)v392) {
goto lab_0x14000d74e;
} else {
uint64_t v393 = 32 - v390; // 0x14000d6b6
v330 = (1 << v393) + 0xffffffff & 0xffffffff;
v332 = (int32_t)v393 & 31;
v335 = (int32_t)v388 & 31;
v325 = v345;
v322 = v392;
goto lab_0x14000d706_2;
}
} else {
goto lab_0x14000d767;
}
} else {
goto lab_0x14000d767;
}
}
}
}
uint64_t v394 = v340 + 0xfffffbcd; // 0x14000d789
int64_t v395 = v394 / 32 & 0x7ffffff; // 0x14000d79b
int64_t v396 = v395 + v345;
int64_t v397 = 0xfffffffffffff; // 0x14000d7cb
int64_t v398 = 0; // 0x14000d7cb
if ((int32_t)v396 < 116) {
int64_t v399 = v394 & 31; // 0x14000d797
int32_t v400 = *(int32_t *)((4 * v345 + 0x3fffffffc & 0x3fffffffc) + v318); // 0x14000d7af
int64_t v401 = v396 + (int64_t)(llvm_ctlz_i32(v400, false) < (int32_t)v399); // 0x14000d7de
v397 = 0xfffffffffffff;
v398 = 0;
if ((int32_t)v401 < 116) {
int64_t v402 = v401 + 0xffffffff; // 0x14000d7eb
int32_t v403 = v395;
int32_t v404 = v403 - 1; // 0x14000d7ef
int64_t v405 = 0xfffffffffffff; // 0x14000d7f2
if (v404 != (int32_t)v402) {
uint64_t v406 = 32 - v399; // 0x14000d7a4
int64_t v407 = (1 << v406) + 0xffffffff & 0xffffffff; // 0x14000d7ac
uint32_t v408 = (int32_t)v406 & 31; // 0x14000d81c
uint32_t v409 = (int32_t)v394 & 31; // 0x14000d824
int64_t v410 = v402 & 0xffffffff;
int64_t v411 = v410 - v395; // 0x14000d7f7
uint32_t v412 = (int32_t)v345; // 0x14000d7fd
int64_t v413 = 0; // 0x14000d7ff
if ((int32_t)v411 < v412) {
// 0x14000d801
v413 = (int64_t)*(int32_t *)((4 * v411 & 0x3fffffffc) + v318);
}
int64_t v414 = v411 + 0xffffffff; // 0x14000d7fa
int64_t v415 = 0; // 0x14000d80d
if ((int32_t)v414 < v412) {
// 0x14000d80f
v415 = (int64_t)*(int32_t *)((4 * v414 & 0x3fffffffc) + v318);
}
int64_t v416 = v415 & (v407 ^ 0xffffffff);
int64_t v417 = v408 == 0 ? v416 : (int64_t)((int32_t)v416 >> v408);
int64_t v418 = v413 & v407;
int64_t v419 = v409 == 0 ? v418 : (int64_t)((int32_t)v418 << v409);
*(int32_t *)(4 * v410 + v318) = (int32_t)(v417 | v419);
int64_t v420 = v410 + 0xffffffff; // 0x14000d82f
v405 = v419;
while (v404 != (int32_t)v420) {
// 0x14000d837
v410 = v420 & 0xffffffff;
v411 = v410 - v395;
v412 = (int32_t)(int64_t)v8;
v413 = 0;
if ((int32_t)v411 < v412) {
// 0x14000d801
v413 = (int64_t)*(int32_t *)((4 * v411 & 0x3fffffffc) + v318);
}
// 0x14000d80b
v414 = v411 + 0xffffffff;
v415 = 0;
if ((int32_t)v414 < v412) {
// 0x14000d80f
v415 = (int64_t)*(int32_t *)((4 * v414 & 0x3fffffffc) + v318);
}
// 0x14000d817
v416 = v415 & (v407 ^ 0xffffffff);
v417 = v408 == 0 ? v416 : (int64_t)((int32_t)v416 >> v408);
v418 = v413 & v407;
v419 = v409 == 0 ? v418 : (int64_t)((int32_t)v418 << v409);
*(int32_t *)(4 * v410 + v318) = (int32_t)(v417 | v419);
v420 = v410 + 0xffffffff;
v405 = v419;
}
}
int64_t v421 = 0; // 0x14000d841
v397 = v405;
v398 = v401;
if (v395 != 0) {
*(int32_t *)(4 * v421 + v318) = 0;
int64_t v422 = v421 + 1; // 0x14000d848
v421 = v422 & 0xffffffff;
v397 = v405;
v398 = v401;
while ((int32_t)v422 != v403) {
// 0x14000d843
*(int32_t *)(4 * v421 + v318) = 0;
v422 = v421 + 1;
v421 = v422 & 0xffffffff;
v397 = v405;
v398 = v401;
}
}
}
}
// 0x14000d855
v8 = v398;
v121 = 1;
v151 = 2;
v180 = v397;
v88 = 1;
v123 = v398;
goto lab_0x14000da9d;
}
}
lab_0x14000d522:
// 0x14000d522
if (strcpy_s((char *)a4, (int32_t)a5, (char *)v6) != 0) {
// 0x14000e67a
function_140006290(0, 0, 0, 0, 0);
return __asm_int3();
}
goto lab_0x14000e645;
lab_0x14000e645:
if (v2 != 0) {
// 0x14000e64c
function_1400100d8((int64_t *)&v1);
}
// 0x14000e656
return function_140011ed0(g29);
lab_0x14000d923:;
uint64_t v176 = v177 + 1; // 0x14000d923
v121 = v176;
int64_t v178 = &v151; // 0x14000d94a
if (v176 < 116) {
// 0x14000d95a
function_140002760(v178, (int64_t)&v29, 4 * v176, v179);
} else {
// 0x14000da7c
function_140001e50((int64_t *)&v151, 0, 460, v179);
*_errno() = 34;
function_140006270(v178, 0, 460, v179);
}
// 0x14000da96
v180 = v179;
v88 = v121;
v123 = v181;
goto lab_0x14000da9d;
lab_0x14000da9d:;
uint32_t v139 = v182 > 0x80000000 ? v182 : 0; // 0x14000d634
int64_t v94; // bp-532, 0x14000d44c
if (v139 < 0) {
uint64_t v183 = 0xcccccccd * (int64_t)-v139; // 0x14000df90
v19 = 0;
v20 = v123;
if (v183 >= 0x800000000) {
int64_t v184 = v183 / 0x800000000; // 0x14000df90
v18 = v184;
int64_t v31 = &v29;
v102 = v127 - 92;
int64_t v93 = &v36;
int64_t v86 = v127 + 1300;
v13 = v18;
v15 = v184;
v16 = v180;
v17 = v123;
while (true) {
lab_0x14000dfb2:;
int64_t v21 = v17;
int64_t v22 = v16;
uint64_t v23 = v15;
v12 = v23 < 38 ? v23 : 38;
int64_t v24 = 4 * v12 + 0x3fffffffc & 0x3fffffffc; // 0x14000dfc3
int64_t v25 = (int64_t)*(char *)(v24 + 0x140019972); // 0x14000dfc3
int64_t v26 = (int64_t)*(char *)(v24 + 0x140019973); // 0x14000dfcc
int64_t v27 = 4 * v25; // 0x14000dfd7
uint64_t v28 = v26 + v25; // 0x14000dfde
function_140001e50((int64_t *)&v29, 0, v27, v22);
uint16_t v30 = *(int16_t *)(v24 + 0x140019970); // 0x14000dffe
function_140002760(v27 + v31, 4 * (int64_t)v30 + (int64_t)&g21, 4 * v26, v22);
uint32_t v32 = (int32_t)v28; // 0x14000e02a
if (v32 > 1) {
uint32_t v33 = (int32_t)v21; // 0x14000e0b5
if (v33 > 1) {
int32_t v34 = (int32_t)(v32 < v33 ? v28 : v21);
if (v34 == 0) {
// 0x14000e2c1
v8 = 0;
v10 = 0;
v11 = 0;
goto lab_0x14000e316;
} else {
int64_t v35 = v32 >= v33 ? &v36 : &v29; // 0x14000e16a
int64_t v37 = v32 >= v33 ? &v29 : &v36; // 0x14000e188
int32_t v38 = (int32_t)(v32 < v33 ? v21 : v28);
int64_t v39 = 0x100000000 * v37 / 0x100000000;
int64_t v40 = 0;
int64_t v41 = 0;
int64_t v42 = v37;
int32_t v43 = 0;
int64_t v44 = 4 * v41; // 0x14000e1ac
uint32_t v45 = *(int32_t *)(v44 + v35); // 0x14000e1ac
int32_t * v46; // 0x14000d44c
int32_t * v47; // 0x14000d44c
int32_t v48; // 0x14000d44c
int32_t v49; // 0x14000d44c
int32_t v50; // 0x14000d44c
int32_t v51; // 0x14000d44c
int64_t v52; // 0x14000d44c
int64_t v53; // 0x14000d44c
int64_t v54; // 0x14000d44c
int64_t v55; // 0x14000d44c
int64_t v56; // 0x14000d44c
int64_t v57; // 0x14000d44c
int64_t v58; // 0x14000d44c
int64_t v59; // 0x14000d44c
int64_t v60; // 0x14000d44c
int64_t v61; // 0x14000d44c
int32_t v62; // 0x14000d44c
int32_t v63; // 0x14000d44c
int32_t v64; // 0x14000d44c
int32_t v65; // 0x14000d44c
int32_t v66; // 0x14000d44c
int32_t v67; // 0x14000d44c
int32_t v68; // 0x14000d44c
int32_t v69; // 0x14000d44c
int32_t v70; // 0x14000d44c
int64_t v71; // 0x14000e1ac
int64_t v72; // 0x14000e1e7
int32_t v73; // 0x14000e1e9
int32_t * v74; // 0x14000e1bd
int64_t v75; // 0x14000e1c5
int64_t v76; // 0x14000e20d
int64_t v77; // 0x14000e20d
uint32_t v78; // 0x14000e210
uint64_t v79; // 0x14000e224
int64_t v80; // 0x14000e235
int64_t v81; // 0x14000e23c
int32_t v82; // 0x14000e1e9
int32_t v83; // 0x14000e251
int64_t v84; // 0x14000e27c
uint64_t v85; // 0x14000e282
if (v45 != 0) {
// 0x14000e1d5
v69 = v43;
v59 = v41;
v55 = v40;
if (v38 != 0) {
// 0x14000e1e4
v71 = v45;
v72 = -v41 & 0xffffffff;
v73 = v41;
v48 = v73;
v54 = v40;
v57 = v41;
v60 = v42;
v62 = v43;
v69 = v43;
v59 = v41;
v55 = v40;
if (v73 != 115) {
v51 = v48;
v47 = (int32_t *)((4 * v57 & 0x3fffffffc) + v86);
if (v51 != (int32_t)v54) {
// 0x14000e1ef
v49 = *v47;
v63 = v62;
} else {
// 0x14000e1f7
*v47 = 0;
v49 = 0;
v63 = v51 + 1;
}
// 0x14000e209
v64 = v63;
v76 = v57 + 1;
v77 = v76 & 0xffffffff;
v78 = *(int32_t *)((4 * (v57 + v72) & 0x3fffffffc) + v60);
v79 = (int64_t)v49 + (int64_t)v78 * v71;
*v47 = (int32_t)v79;
v80 = v64;
v81 = v79 / 0x100000000;
while ((int32_t)(v76 - v41) != v38) {
// 0x14000e245
v82 = v76;
v48 = v82;
v54 = v80;
v52 = v81;
v57 = v77;
v60 = v39;
v62 = v64;
if (v82 == 115) {
// break -> 0x14000e24c
break;
}
v51 = v48;
v47 = (int32_t *)((4 * v57 & 0x3fffffffc) + v86);
if (v51 != (int32_t)v54) {
// 0x14000e1ef
v49 = *v47;
v63 = v62;
} else {
// 0x14000e1f7
*v47 = 0;
v49 = 0;
v63 = v51 + 1;
}
// 0x14000e209
v64 = v63;
v76 = v57 + 1;
v77 = v76 & 0xffffffff;
v78 = *(int32_t *)((4 * (v57 + v72) & 0x3fffffffc) + v60);
v79 = v52 + (int64_t)v49 + (int64_t)v78 * v71;
*v47 = (int32_t)v79;
v80 = v64;
v81 = v79 / 0x100000000;
}
// 0x14000e24c
v65 = v64;
v58 = v77;
v53 = v81;
v69 = v64;
v59 = v77;
v55 = v80;
if (v79 >= 0x100000000) {
v83 = v58;
if (v83 == 115) {
// 0x14000e3c2
v8 = 0;
v87 = v88;
goto lab_0x14000e3f2;
}
// 0x14000e25b
v66 = v65;
v46 = (int32_t *)(4 * v58 + v86);
if (v66 != v83) {
// 0x14000e25b
v50 = *v46;
v67 = v66;
} else {
// 0x14000e263
*v46 = 0;
v50 = 0;
v67 = v83 + 1;
}
// 0x14000e275
v68 = v67;
v84 = v58 + 1 & 0xffffffff;
v85 = v53 + (int64_t)v50;
*v46 = (int32_t)v85;
v58 = v84;
v53 = v85 / 0x100000000;
while (v85 >= 0x100000000) {
// 0x14000e251
v83 = v58;
if (v83 == 115) {
// 0x14000e3c2
v8 = 0;
v87 = v88;
goto lab_0x14000e3f2;
}
// 0x14000e25b
v66 = v68;
v46 = (int32_t *)(4 * v58 + v86);
if (v66 != v83) {
// 0x14000e25b
v50 = *v46;
v67 = v66;
} else {
// 0x14000e263
*v46 = 0;
v50 = 0;
v67 = v83 + 1;
}
// 0x14000e275
v68 = v67;
v84 = v58 + 1 & 0xffffffff;
v85 = v53 + (int64_t)v50;
*v46 = (int32_t)v85;
v58 = v84;
v53 = v85 / 0x100000000;
}
// 0x14000e2a2
v69 = v68;
v59 = v84;
v55 = v68;
}
}
}
// 0x14000e2a2
v70 = v69;
v61 = v39;
v56 = v55;
if ((int32_t)v59 == 115) {
// 0x14000e3c2
v8 = 0;
v87 = v88;
goto lab_0x14000e3f2;
}
} else {
// 0x14000e1b4
v70 = v43;
v61 = v42;
v56 = v40;
if ((int32_t)v41 == (int32_t)v40) {
// 0x14000e1bd
v74 = (int32_t *)(v44 + v86);
*v74 = *v74 & v45;
v75 = v41 + 1;
v70 = v75;
v61 = v42;
v56 = v75 & 0xffffffff;
}
}
int64_t v89 = v56;
int64_t v90 = v41 + 1; // 0x14000e2b5
int64_t v91 = v90 & 0xffffffff; // 0x14000e2b5
while ((int32_t)v90 != v34) {
// 0x14000e1ac
v40 = v89;
v41 = v91;
v42 = v61;
v43 = v70;
v44 = 4 * v41;
v45 = *(int32_t *)(v44 + v35);
if (v45 != 0) {
// 0x14000e1d5
v69 = v43;
v59 = v41;
v55 = v40;
if (v38 != 0) {
// 0x14000e1e4
v71 = v45;
v72 = -v41 & 0xffffffff;
v73 = v41;
v48 = v73;
v54 = v40;
v57 = v41;
v60 = v42;
v62 = v43;
v69 = v43;
v59 = v41;
v55 = v40;
if (v73 != 115) {
v51 = v48;
v47 = (int32_t *)((4 * v57 & 0x3fffffffc) + v86);
if (v51 != (int32_t)v54) {
// 0x14000e1ef
v49 = *v47;
v63 = v62;
} else {
// 0x14000e1f7
*v47 = 0;
v49 = 0;
v63 = v51 + 1;
}
// 0x14000e209
v64 = v63;
v76 = v57 + 1;
v77 = v76 & 0xffffffff;
v78 = *(int32_t *)((4 * (v57 + v72) & 0x3fffffffc) + v60);
v79 = (int64_t)v49 + (int64_t)v78 * v71;
*v47 = (int32_t)v79;
v80 = v64;
v81 = v79 / 0x100000000;
while ((int32_t)(v76 - v41) != v38) {
// 0x14000e245
v82 = v76;
v48 = v82;
v54 = v80;
v52 = v81;
v57 = v77;
v60 = v39;
v62 = v64;
if (v82 == 115) {
// break -> 0x14000e24c
break;
}
v51 = v48;
v47 = (int32_t *)((4 * v57 & 0x3fffffffc) + v86);
if (v51 != (int32_t)v54) {
// 0x14000e1ef
v49 = *v47;
v63 = v62;
} else {
// 0x14000e1f7
*v47 = 0;
v49 = 0;
v63 = v51 + 1;
}
// 0x14000e209
v64 = v63;
v76 = v57 + 1;
v77 = v76 & 0xffffffff;
v78 = *(int32_t *)((4 * (v57 + v72) & 0x3fffffffc) + v60);
v79 = v52 + (int64_t)v49 + (int64_t)v78 * v71;
*v47 = (int32_t)v79;
v80 = v64;
v81 = v79 / 0x100000000;
}
// 0x14000e24c
v65 = v64;
v58 = v77;
v53 = v81;
v69 = v64;
v59 = v77;
v55 = v80;
if (v79 >= 0x100000000) {
v83 = v58;
if (v83 == 115) {
// 0x14000e3c2
v8 = 0;
v87 = v88;
goto lab_0x14000e3f2;
}
// 0x14000e25b
v66 = v65;
v46 = (int32_t *)(4 * v58 + v86);
if (v66 != v83) {
// 0x14000e25b
v50 = *v46;
v67 = v66;
} else {
// 0x14000e263
*v46 = 0;
v50 = 0;
v67 = v83 + 1;
}
// 0x14000e275
v68 = v67;
v84 = v58 + 1 & 0xffffffff;
v85 = v53 + (int64_t)v50;
*v46 = (int32_t)v85;
v58 = v84;
v53 = v85 / 0x100000000;
while (v85 >= 0x100000000) {
// 0x14000e251
v83 = v58;
if (v83 == 115) {
// 0x14000e3c2
v8 = 0;
v87 = v88;
goto lab_0x14000e3f2;
}
// 0x14000e25b
v66 = v68;
v46 = (int32_t *)(4 * v58 + v86);
if (v66 != v83) {
// 0x14000e25b
v50 = *v46;
v67 = v66;
} else {
// 0x14000e263
*v46 = 0;
v50 = 0;
v67 = v83 + 1;
}
// 0x14000e275
v68 = v67;
v84 = v58 + 1 & 0xffffffff;
v85 = v53 + (int64_t)v50;
*v46 = (int32_t)v85;
v58 = v84;
v53 = v85 / 0x100000000;
}
// 0x14000e2a2
v69 = v68;
v59 = v84;
v55 = v68;
}
}
}
// 0x14000e2a2
v70 = v69;
v61 = v39;
v56 = v55;
if ((int32_t)v59 == 115) {
// 0x14000e3c2
v8 = 0;
v87 = v88;
goto lab_0x14000e3f2;
}
} else {
// 0x14000e1b4
v70 = v43;
v61 = v42;
v56 = v40;
if ((int32_t)v41 == (int32_t)v40) {
// 0x14000e1bd
v74 = (int32_t *)(v44 + v86);
*v74 = *v74 & v45;
v75 = v41 + 1;
v70 = v75;
v61 = v42;
v56 = v75 & 0xffffffff;
}
}
// 0x14000e2b5
v89 = v56;
v90 = v41 + 1;
v91 = v90 & 0xffffffff;
}
uint64_t v92 = 4 * v89 & 0x3fffffffc; // 0x14000e2c4
v8 = v89;
v10 = v91;
v11 = v89;
if (v92 == 0) {
goto lab_0x14000e316;
} else {
if (v92 < 461) {
// 0x14000e2df
function_140002760(v93, (int64_t)&v94, v92, v91);
v95 = v91;
} else {
// 0x14000e2ed
function_140001e50((int64_t *)&v36, 0, 460, v91);
*_errno() = 34;
function_140006270(v93, 0, 460, v91);
v95 = v91;
}
goto lab_0x14000e307;
}
}
} else {
// 0x14000e0be
v8 = v32;
int64_t v96 = 0; // 0x14000e0d2
if (v28 != 0) {
if (v28 < 116) {
// 0x14000e0e2
function_140002760(v93, v31, 4 * v28, v22);
} else {
// 0x14000e0f0
function_140001e50((int64_t *)&v36, 0, 460, v22);
*_errno() = 34;
function_140006270(v93, 0, 460, v22);
}
// 0x14000e10a
v96 = v8;
}
int64_t v97 = v96;
v9 = v22;
v7 = 0;
v10 = v22;
v11 = v97;
int128_t v98; // 0x14000e0be
switch ((int32_t)v98) {
case 0: {
goto lab_0x14000e040;
}
case 1: {
goto lab_0x14000e316;
}
default: {
int32_t v99 = v97; // 0x14000e11f
int64_t v100 = 0; // 0x14000e122
v10 = v22;
v11 = v97;
if (v99 == 0) {
goto lab_0x14000e316;
} else {
int32_t * v101 = (int32_t *)(4 * v100 + v102); // 0x14000e131
uint64_t v103 = ((int64_t)v36 & 0xffffffff) * (int64_t)*v101; // 0x14000e13d
*v101 = (int32_t)v103;
int64_t v104 = v103 / 0x100000000; // 0x14000e148
int64_t v105 = v100 + 1; // 0x14000e14c
int64_t v106 = v105 & 0xffffffff; // 0x14000e14c
v107 = v104;
v108 = v106;
v100 = v106;
while ((int32_t)v105 != v99) {
// 0x14000e131
v101 = (int32_t *)(4 * v100 + v102);
v103 = ((int64_t)v36 & 0xffffffff) * (int64_t)*v101 + v104;
*v101 = (int32_t)v103;
v104 = v103 / 0x100000000;
v105 = v100 + 1;
v106 = v105 & 0xffffffff;
v107 = v104;
v108 = v106;
v100 = v106;
}
goto lab_0x14000e087;
}
}
}
}
} else {
int32_t v109 = v29; // 0x14000e039
v9 = v22;
v7 = 0;
if (v109 != 0) {
int32_t v110 = v21; // 0x14000e052
int64_t v111 = 0; // 0x14000e04c
v10 = v22;
v11 = v21;
if (v110 == 0 || v109 == 1) {
goto lab_0x14000e316;
} else {
int32_t * v112 = (int32_t *)(4 * v111 + v102); // 0x14000e064
uint64_t v113 = ((int64_t)v29 & 0xffffffff) * (int64_t)*v112; // 0x14000e070
*v112 = (int32_t)v113;
int64_t v114 = v113 / 0x100000000; // 0x14000e07b
int64_t v115 = v111 + 1; // 0x14000e07f
int64_t v116 = v115 & 0xffffffff; // 0x14000e07f
v111 = v116;
v107 = v114;
v108 = v116;
while ((int32_t)v115 != v110) {
// 0x14000e064
v112 = (int32_t *)(4 * v111 + v102);
v113 = ((int64_t)v29 & 0xffffffff) * (int64_t)*v112 + v114;
*v112 = (int32_t)v113;
v114 = v113 / 0x100000000;
v115 = v111 + 1;
v116 = v115 & 0xffffffff;
v111 = v116;
v107 = v114;
v108 = v116;
}
goto lab_0x14000e087;
}
} else {
goto lab_0x14000e040;
}
}
}
}
lab_0x14000e33c:;
uint32_t v185 = -10 * v19 - v139; // 0x14000e341
v122 = v88;
v124 = v20;
if (v185 == 0) {
goto lab_0x14000df20;
} else {
uint32_t v186 = *(int32_t *)((4 * (int64_t)v185 + 0x3fffffffc & 0x3fffffffc) + 0x140019a08); // 0x14000e34c
v122 = v88;
v124 = v20;
switch (v186) {
case 0: {
// 0x14000e3c2
v8 = 0;
v87 = v88;
goto lab_0x14000e3f2;
}
case 1: {
goto lab_0x14000df20;
}
default: {
int32_t v187 = v20; // 0x14000e361
v122 = v88;
v124 = v20;
if (v187 == 0) {
goto lab_0x14000df20;
} else {
int64_t v188 = v127 - 92; // 0x14000e373
int64_t v189 = 0; // 0x14000d44c
int32_t * v190 = (int32_t *)(4 * v189 + v188); // 0x14000e373
uint64_t v191 = (int64_t)*v190 * (int64_t)v186; // 0x14000e37f
*v190 = (int32_t)v191;
int64_t v192 = v191 / 0x100000000; // 0x14000e38a
int64_t v193 = v189 + 1; // 0x14000e38e
v189 = v193 & 0xffffffff;
while ((int32_t)v193 != v187) {
// 0x14000e373
v190 = (int32_t *)(4 * v189 + v188);
v191 = (int64_t)*v190 * (int64_t)v186 + v192;
*v190 = (int32_t)v191;
v192 = v191 / 0x100000000;
v193 = v189 + 1;
v189 = v193 & 0xffffffff;
}
int32_t v194 = v192; // 0x14000e396
uint32_t v195 = v8;
if (v194 == 0) {
// 0x14000e3b9
v122 = v88;
v124 = v195;
goto lab_0x14000df20;
} else {
if (v195 >= 115) {
// 0x14000e3c2
v8 = 0;
v87 = v88;
goto lab_0x14000e3f2;
} else {
// 0x14000e3a1
*(int32_t *)(4 * (int64_t)v195 + v188) = v194;
int32_t v196 = v8 + 1; // 0x14000e3ad
v8 = v196;
v122 = v88;
v124 = v196;
goto lab_0x14000df20;
}
}
}
}
}
}
} else {
uint64_t v197 = 0xcccccccd * (int64_t)v139; // 0x14000daae
v198 = 0;
v199 = v88;
if (v197 >= 0x800000000) {
int64_t v200 = v197 / 0x800000000; // 0x14000daae
v201 = v200;
int64_t v202 = &v29;
v203 = v127 + 372;
int64_t v204 = &v151;
int64_t v205 = v127 + 1300;
v206 = v201;
v207 = v200;
v208 = v180;
v209 = v88;
while (true) {
lab_0x14000dad4:;
int64_t v210 = v209;
int64_t v211 = v208;
uint64_t v212 = v207;
v213 = v212 < 38 ? v212 : 38;
int64_t v214 = 4 * v213 + 0x3fffffffc & 0x3fffffffc; // 0x14000dae5
int64_t v215 = (int64_t)*(char *)(v214 + 0x140019972); // 0x14000dae5
int64_t v216 = (int64_t)*(char *)(v214 + 0x140019973); // 0x14000daed
int64_t v217 = 4 * v215; // 0x14000daf7
uint64_t v218 = v216 + v215; // 0x14000db00
function_140001e50((int64_t *)&v29, 0, v217, v211);
uint16_t v219 = *(int16_t *)(v214 + 0x140019970); // 0x14000db20
function_140002760(v217 + v202, 4 * (int64_t)v219 + (int64_t)&g21, 4 * v216, v211);
uint32_t v220 = (int32_t)v218; // 0x14000db4c
if (v220 > 1) {
uint32_t v221 = (int32_t)v210; // 0x14000dbef
if (v221 > 1) {
int32_t v222 = (int32_t)(v220 < v221 ? v218 : v210);
if (v222 == 0) {
// 0x14000de15
v121 = 0;
v223 = 0;
v224 = 0;
goto lab_0x14000de73;
} else {
int64_t v225 = v220 >= v221 ? &v151 : &v29; // 0x14000dcb9
int64_t v226 = v220 >= v221 ? &v29 : &v151; // 0x14000dcdb
int32_t v227 = (int32_t)(v220 < v221 ? v210 : v218);
int64_t v228 = 0x100000000 * v225 / 0x100000000;
int64_t v229 = 0;
int64_t v230 = 0;
int64_t v231 = v225;
int32_t v232 = 0;
int64_t v233 = 4 * v230; // 0x14000dcff
uint32_t v234 = *(int32_t *)(v233 + v231); // 0x14000dcff
int32_t * v235; // 0x14000d44c
int32_t * v236; // 0x14000d44c
int32_t v237; // 0x14000d44c
int32_t v238; // 0x14000d44c
int32_t v239; // 0x14000d44c
int32_t v240; // 0x14000d44c
int64_t v241; // 0x14000d44c
int64_t v242; // 0x14000d44c
int64_t v243; // 0x14000d44c
int64_t v244; // 0x14000d44c
int64_t v245; // 0x14000d44c
int64_t v246; // 0x14000d44c
int64_t v247; // 0x14000d44c
int64_t v248; // 0x14000d44c
int64_t v249; // 0x14000d44c
int32_t v250; // 0x14000d44c
int32_t v251; // 0x14000d44c
int32_t v252; // 0x14000d44c
int32_t v253; // 0x14000d44c
int32_t v254; // 0x14000d44c
int32_t v255; // 0x14000d44c
int32_t v256; // 0x14000d44c
int32_t v257; // 0x14000d44c
int32_t v258; // 0x14000d44c
int64_t v259; // 0x14000dcff
int64_t v260; // 0x14000dd3a
int32_t v261; // 0x14000dd3c
int32_t * v262; // 0x14000dd10
int64_t v263; // 0x14000dd18
int64_t v264; // 0x14000dd60
int64_t v265; // 0x14000dd60
uint32_t v266; // 0x14000dd63
uint64_t v267; // 0x14000dd77
int64_t v268; // 0x14000dd88
int64_t v269; // 0x14000dd8f
int32_t v270; // 0x14000dd3c
int32_t v271; // 0x14000dda4
int64_t v272; // 0x14000ddcf
uint64_t v273; // 0x14000ddd5
if (v234 != 0) {
// 0x14000dd28
v257 = v232;
v246 = v230;
v244 = v229;
if (v227 != 0) {
// 0x14000dd37
v259 = v234;
v260 = -v230 & 0xffffffff;
v261 = v230;
v237 = v261;
v243 = v229;
v247 = v230;
v250 = v232;
v257 = v232;
v246 = v230;
v244 = v229;
if (v261 != 115) {
v240 = v237;
v236 = (int32_t *)((4 * v247 & 0x3fffffffc) + v205);
if (v240 != (int32_t)v243) {
// 0x14000dd42
v238 = *v236;
v251 = v250;
} else {
// 0x14000dd4a
*v236 = 0;
v238 = 0;
v251 = v240 + 1;
}
// 0x14000dd5c
v252 = v251;
v264 = v247 + 1;
v265 = v264 & 0xffffffff;
v266 = *(int32_t *)((4 * (v247 + v260) & 0x3fffffffc) + v226);
v267 = (int64_t)v266 * v259 + (int64_t)v238;
*v236 = (int32_t)v267;
v268 = v252;
v269 = v267 / 0x100000000;
while ((int32_t)(v264 - v230) != v227) {
// 0x14000dd3c
v270 = v264;
v237 = v270;
v243 = v268;
v241 = v269;
v247 = v265;
v250 = v252;
if (v270 == 115) {
// break -> 0x14000dd9f
break;
}
v240 = v237;
v236 = (int32_t *)((4 * v247 & 0x3fffffffc) + v205);
if (v240 != (int32_t)v243) {
// 0x14000dd42
v238 = *v236;
v251 = v250;
} else {
// 0x14000dd4a
*v236 = 0;
v238 = 0;
v251 = v240 + 1;
}
// 0x14000dd5c
v252 = v251;
v264 = v247 + 1;
v265 = v264 & 0xffffffff;
v266 = *(int32_t *)((4 * (v247 + v260) & 0x3fffffffc) + v226);
v267 = (int64_t)v266 * v259 + v241 + (int64_t)v238;
*v236 = (int32_t)v267;
v268 = v252;
v269 = v267 / 0x100000000;
}
// 0x14000dd9f
v253 = v252;
v248 = v265;
v242 = v269;
v257 = v252;
v246 = v265;
v244 = v268;
if (v267 >= 0x100000000) {
v271 = v248;
v120 = 0;
if (v271 == 115) {
goto lab_0x14000df7e_2;
}
// 0x14000ddae
v254 = v253;
v235 = (int32_t *)(4 * v248 + v205);
if (v254 != v271) {
// 0x14000ddae
v239 = *v235;
v255 = v254;
} else {
// 0x14000ddb6
*v235 = 0;
v239 = 0;
v255 = v271 + 1;
}
// 0x14000ddc8
v256 = v255;
v272 = v248 + 1 & 0xffffffff;
v273 = v242 + (int64_t)v239;
*v235 = (int32_t)v273;
v248 = v272;
v242 = v273 / 0x100000000;
while (v273 >= 0x100000000) {
// 0x14000dda4
v271 = v248;
v120 = 0;
if (v271 == 115) {
goto lab_0x14000df7e_2;
}
// 0x14000ddae
v254 = v256;
v235 = (int32_t *)(4 * v248 + v205);
if (v254 != v271) {
// 0x14000ddae
v239 = *v235;
v255 = v254;
} else {
// 0x14000ddb6
*v235 = 0;
v239 = 0;
v255 = v271 + 1;
}
// 0x14000ddc8
v256 = v255;
v272 = v248 + 1 & 0xffffffff;
v273 = v242 + (int64_t)v239;
*v235 = (int32_t)v273;
v248 = v272;
v242 = v273 / 0x100000000;
}
// 0x14000ddf5
v257 = v256;
v246 = v272;
v244 = v256;
}
}
}
// 0x14000ddf5
v258 = v257;
v249 = v228;
v245 = v244;
v120 = 0;
if ((int32_t)v246 == 115) {
goto lab_0x14000df7e_2;
}
} else {
// 0x14000dd07
v258 = v232;
v249 = v231;
v245 = v229;
if ((int32_t)v230 == (int32_t)v229) {
// 0x14000dd10
v262 = (int32_t *)(v233 + v205);
*v262 = *v262 & v234;
v263 = v230 + 1;
v258 = v263;
v249 = v231;
v245 = v263 & 0xffffffff;
}
}
int64_t v274 = v245;
int64_t v275 = v230 + 1; // 0x14000de09
int64_t v276 = v275 & 0xffffffff; // 0x14000de09
while ((int32_t)v275 != v222) {
// 0x14000dcff
v229 = v274;
v230 = v276;
v231 = v249;
v232 = v258;
v233 = 4 * v230;
v234 = *(int32_t *)(v233 + v231);
if (v234 != 0) {
// 0x14000dd28
v257 = v232;
v246 = v230;
v244 = v229;
if (v227 != 0) {
// 0x14000dd37
v259 = v234;
v260 = -v230 & 0xffffffff;
v261 = v230;
v237 = v261;
v243 = v229;
v247 = v230;
v250 = v232;
v257 = v232;
v246 = v230;
v244 = v229;
if (v261 != 115) {
v240 = v237;
v236 = (int32_t *)((4 * v247 & 0x3fffffffc) + v205);
if (v240 != (int32_t)v243) {
// 0x14000dd42
v238 = *v236;
v251 = v250;
} else {
// 0x14000dd4a
*v236 = 0;
v238 = 0;
v251 = v240 + 1;
}
// 0x14000dd5c
v252 = v251;
v264 = v247 + 1;
v265 = v264 & 0xffffffff;
v266 = *(int32_t *)((4 * (v247 + v260) & 0x3fffffffc) + v226);
v267 = (int64_t)v266 * v259 + (int64_t)v238;
*v236 = (int32_t)v267;
v268 = v252;
v269 = v267 / 0x100000000;
while ((int32_t)(v264 - v230) != v227) {
// 0x14000dd3c
v270 = v264;
v237 = v270;
v243 = v268;
v241 = v269;
v247 = v265;
v250 = v252;
if (v270 == 115) {
// break -> 0x14000dd9f
break;
}
v240 = v237;
v236 = (int32_t *)((4 * v247 & 0x3fffffffc) + v205);
if (v240 != (int32_t)v243) {
// 0x14000dd42
v238 = *v236;
v251 = v250;
} else {
// 0x14000dd4a
*v236 = 0;
v238 = 0;
v251 = v240 + 1;
}
// 0x14000dd5c
v252 = v251;
v264 = v247 + 1;
v265 = v264 & 0xffffffff;
v266 = *(int32_t *)((4 * (v247 + v260) & 0x3fffffffc) + v226);
v267 = (int64_t)v266 * v259 + v241 + (int64_t)v238;
*v236 = (int32_t)v267;
v268 = v252;
v269 = v267 / 0x100000000;
}
// 0x14000dd9f
v253 = v252;
v248 = v265;
v242 = v269;
v257 = v252;
v246 = v265;
v244 = v268;
if (v267 >= 0x100000000) {
v271 = v248;
v120 = 0;
if (v271 == 115) {
goto lab_0x14000df7e_2;
}
// 0x14000ddae
v254 = v253;
v235 = (int32_t *)(4 * v248 + v205);
if (v254 != v271) {
// 0x14000ddae
v239 = *v235;
v255 = v254;
} else {
// 0x14000ddb6
*v235 = 0;
v239 = 0;
v255 = v271 + 1;
}
// 0x14000ddc8
v256 = v255;
v272 = v248 + 1 & 0xffffffff;
v273 = v242 + (int64_t)v239;
*v235 = (int32_t)v273;
v248 = v272;
v242 = v273 / 0x100000000;
while (v273 >= 0x100000000) {
// 0x14000dda4
v271 = v248;
v120 = 0;
if (v271 == 115) {
goto lab_0x14000df7e_2;
}
// 0x14000ddae
v254 = v256;
v235 = (int32_t *)(4 * v248 + v205);
if (v254 != v271) {
// 0x14000ddae
v239 = *v235;
v255 = v254;
} else {
// 0x14000ddb6
*v235 = 0;
v239 = 0;
v255 = v271 + 1;
}
// 0x14000ddc8
v256 = v255;
v272 = v248 + 1 & 0xffffffff;
v273 = v242 + (int64_t)v239;
*v235 = (int32_t)v273;
v248 = v272;
v242 = v273 / 0x100000000;
}
// 0x14000ddf5
v257 = v256;
v246 = v272;
v244 = v256;
}
}
}
// 0x14000ddf5
v258 = v257;
v249 = v228;
v245 = v244;
v120 = 0;
if ((int32_t)v246 == 115) {
goto lab_0x14000df7e_2;
}
} else {
// 0x14000dd07
v258 = v232;
v249 = v231;
v245 = v229;
if ((int32_t)v230 == (int32_t)v229) {
// 0x14000dd10
v262 = (int32_t *)(v233 + v205);
*v262 = *v262 & v234;
v263 = v230 + 1;
v258 = v263;
v249 = v231;
v245 = v263 & 0xffffffff;
}
}
// 0x14000de09
v274 = v245;
v275 = v230 + 1;
v276 = v275 & 0xffffffff;
}
uint64_t v277 = 4 * v274 & 0x3fffffffc; // 0x14000de18
v121 = v274;
v223 = v276;
v224 = v274;
if (v277 == 0) {
goto lab_0x14000de73;
} else {
if (v277 < 461) {
// 0x14000de39
function_140002760(v204, (int64_t)&v94, v277, v276);
v278 = v276;
} else {
// 0x14000de47
function_140001e50((int64_t *)&v151, 0, 460, v276);
*_errno() = 34;
function_140006270(v204, 0, 460, v276);
v278 = v276;
}
goto lab_0x14000de61;
}
}
} else {
// 0x14000dbf8
v121 = v220;
int64_t v279 = 0; // 0x14000dc12
if (v218 != 0) {
if (v218 < 116) {
// 0x14000dc25
function_140002760(v204, v202, 4 * v218, v211);
} else {
// 0x14000dc33
function_140001e50((int64_t *)&v151, 0, 460, v211);
*_errno() = 34;
function_140006270(v204, 0, 460, v211);
}
// 0x14000dc4d
v279 = v121;
}
int64_t v280 = v279;
v281 = v211;
v282 = 0;
v223 = v211;
v224 = v280;
int128_t v283; // 0x14000dbf8
switch ((int32_t)v283) {
case 0: {
goto lab_0x14000db62;
}
case 1: {
goto lab_0x14000de73;
}
default: {
int32_t v284 = v280; // 0x14000dc65
int64_t v285 = 0; // 0x14000dc68
v223 = v211;
v224 = v280;
if (v284 == 0) {
goto lab_0x14000de73;
} else {
int32_t * v286 = (int32_t *)(4 * v285 + v203); // 0x14000dc77
uint64_t v287 = ((int64_t)v151 & 0xffffffff) * (int64_t)*v286; // 0x14000dc86
*v286 = (int32_t)v287;
int64_t v288 = v287 / 0x100000000; // 0x14000dc94
int64_t v289 = v285 + 1; // 0x14000dc98
int64_t v290 = v289 & 0xffffffff; // 0x14000dc98
v291 = v288;
v292 = v290;
v285 = v290;
while ((int32_t)v289 != v284) {
// 0x14000dc77
v286 = (int32_t *)(4 * v285 + v203);
v287 = ((int64_t)v151 & 0xffffffff) * (int64_t)*v286 + v288;
*v286 = (int32_t)v287;
v288 = v287 / 0x100000000;
v289 = v285 + 1;
v290 = v289 & 0xffffffff;
v291 = v288;
v292 = v290;
v285 = v290;
}
goto lab_0x14000dbb2;
}
}
}
}
} else {
int32_t v293 = v29; // 0x14000db5b
v281 = v211;
v282 = 0;
if (v293 != 0) {
int32_t v294 = v210; // 0x14000db77
int64_t v295 = 0; // 0x14000db71
v223 = v211;
v224 = v210;
if (v294 == 0 || v293 == 1) {
goto lab_0x14000de73;
} else {
int32_t * v296 = (int32_t *)(4 * v295 + v203); // 0x14000db89
uint64_t v297 = ((int64_t)v29 & 0xffffffff) * (int64_t)*v296; // 0x14000db98
*v296 = (int32_t)v297;
int64_t v298 = v297 / 0x100000000; // 0x14000dba6
int64_t v299 = v295 + 1; // 0x14000dbaa
int64_t v300 = v299 & 0xffffffff; // 0x14000dbaa
v295 = v300;
v291 = v298;
v292 = v300;
while ((int32_t)v299 != v294) {
// 0x14000db89
v296 = (int32_t *)(4 * v295 + v203);
v297 = ((int64_t)v29 & 0xffffffff) * (int64_t)*v296 + v298;
*v296 = (int32_t)v297;
v298 = v297 / 0x100000000;
v299 = v295 + 1;
v300 = v299 & 0xffffffff;
v295 = v300;
v291 = v298;
v292 = v300;
}
goto lab_0x14000dbb2;
}
} else {
goto lab_0x14000db62;
}
}
}
}
lab_0x14000de96:;
uint32_t v301 = -10 * v198 + v139; // 0x14000de9f
v122 = v199;
v124 = v123;
if (v301 == 0) {
goto lab_0x14000df20;
} else {
uint32_t v302 = *(int32_t *)((4 * (int64_t)v301 + 0x3fffffffc & 0x3fffffffc) + 0x140019a08); // 0x14000dea6
v122 = v199;
v124 = v123;
v120 = 0;
switch (v302) {
case 0: {
goto lab_0x14000df7e_2;
}
case 1: {
goto lab_0x14000df20;
}
default: {
int32_t v303 = v199; // 0x14000deba
v122 = v199;
v124 = v123;
if (v303 == 0) {
goto lab_0x14000df20;
} else {
int64_t v304 = v127 + 372; // 0x14000dec8
int64_t v305 = 0; // 0x14000d44c
int32_t * v306 = (int32_t *)(4 * v305 + v304); // 0x14000dec8
uint64_t v307 = (int64_t)*v306 * (int64_t)v302; // 0x14000ded7
*v306 = (int32_t)v307;
int64_t v308 = v307 / 0x100000000; // 0x14000dee5
int64_t v309 = v305 + 1; // 0x14000dee9
v305 = v309 & 0xffffffff;
while ((int32_t)v309 != v303) {
// 0x14000dec8
v306 = (int32_t *)(4 * v305 + v304);
v307 = (int64_t)*v306 * (int64_t)v302 + v308;
*v306 = (int32_t)v307;
v308 = v307 / 0x100000000;
v309 = v305 + 1;
v305 = v309 & 0xffffffff;
}
int32_t v310 = v308; // 0x14000def1
uint32_t v311 = v121;
if (v310 == 0) {
// 0x14000df19
v122 = v311;
v124 = v123;
goto lab_0x14000df20;
} else {
// 0x14000def6
v120 = 0;
if (v311 < 115) {
// 0x14000deff
*(int32_t *)(4 * (int64_t)v311 + v304) = v310;
v120 = v121 + 1;
}
goto lab_0x14000df7e_2;
}
}
}
}
}
}
lab_0x14000df20:;
int32_t v125 = v124; // 0x14000df27
v87 = v122;
if (v125 != 0) {
int64_t v126 = v127 - 92; // 0x14000df36
int64_t v128 = 0; // 0x14000d44c
int32_t * v129 = (int32_t *)(4 * v128 + v126); // 0x14000df36
uint64_t v130 = 10 * (int64_t)*v129; // 0x14000df42
*v129 = (int32_t)v130;
int64_t v131 = v128 + 1; // 0x14000df4b
int64_t v132 = v130 / 0x100000000; // 0x14000df4e
v128 = v131 & 0xffffffff;
while ((int32_t)v131 != v125) {
// 0x14000df36
v129 = (int32_t *)(4 * v128 + v126);
v130 = 10 * (int64_t)*v129 + v132;
*v129 = (int32_t)v130;
v131 = v128 + 1;
v132 = v130 / 0x100000000;
v128 = v131 & 0xffffffff;
}
int32_t v133 = v132; // 0x14000df57
v87 = v122;
if (v133 != 0) {
uint32_t v134 = v8; // 0x14000df60
if (v134 >= 115) {
// 0x14000e3cf
v8 = 0;
memcpy_s((int64_t *)&v36, 460, (int64_t *)&v29, 0);
v87 = v122;
} else {
// 0x14000df6a
*(int32_t *)(4 * (int64_t)v134 + v126) = v133;
v8++;
v87 = v122;
}
}
}
goto lab_0x14000e3f2;
lab_0x14000e3f2:;
int64_t v135 = function_14000d020(&v8, &v121); // 0x14000e3fd
int32_t v136 = v135; // 0x14000e406
int64_t v137; // 0x14000d44c
int64_t v138; // 0x14000d44c
if (v136 != 10) {
if (v136 != 0) {
// 0x14000e4a8
*(char *)a4 = (char)v135 + 48;
v137 = a4 + 1;
v138 = v139;
} else {
// 0x14000e4a3
v137 = a4;
v138 = v139 - 1;
}
} else {
int64_t v140 = v139 + 1; // 0x14000e40f
*(char *)a4 = 49;
int64_t v141 = a4 + 1; // 0x14000e415
int32_t v142 = v87; // 0x14000e419
v137 = v141;
v138 = v140;
if (v142 != 0) {
int64_t v143 = v127 + 372; // 0x14000e428
int64_t v144 = 0; // 0x14000d44c
int32_t * v145 = (int32_t *)(4 * v144 + v143); // 0x14000e428
uint64_t v146 = 10 * (int64_t)*v145; // 0x14000e437
*v145 = (int32_t)v146;
int64_t v147 = v144 + 1; // 0x14000e443
int64_t v148 = v146 / 0x100000000; // 0x14000e446
v144 = v147 & 0xffffffff;
while ((int32_t)v147 != v142) {
// 0x14000e428
v145 = (int32_t *)(4 * v144 + v143);
v146 = 10 * (int64_t)*v145 + v148;
*v145 = (int32_t)v146;
v147 = v144 + 1;
v148 = v146 / 0x100000000;
v144 = v147 & 0xffffffff;
}
int32_t v149 = v148; // 0x14000e44f
v137 = v141;
v138 = v140;
if (v149 != 0) {
uint32_t v150 = v121; // 0x14000e454
if (v150 >= 115) {
// 0x14000e474
v121 = 0;
memcpy_s((int64_t *)&v151, 460, (int64_t *)&v29, 0);
v137 = v141;
v138 = v140;
} else {
// 0x14000e45d
*(int32_t *)(4 * (int64_t)v150 + v143) = v149;
v121++;
v137 = v141;
v138 = v140;
}
}
}
}
int64_t v152 = a2 + 1; // 0x14000d5b9
int32_t v153 = v138; // 0x14000e4b8
*(int32_t *)(v3 + 4) = v153;
uint64_t v154 = ((int32_t)v152 > -1 == v153 > -1 ? v138 : 0) + v152 & 0xffffffff;
uint64_t v155 = a5 - 1; // 0x14000e4d0
int64_t v156 = (v155 < v154 ? v155 : v154) + a4; // 0x14000e4dc
int64_t v157 = v137; // 0x14000e4e2
if (v137 != v156) {
int64_t v158 = v127 - 92;
int64_t v159 = v137;
int64_t v160 = 0; // 0x14000e4f5
v157 = v159;
while (v8 != 0) {
int32_t * v161 = (int32_t *)(4 * v160 + v158); // 0x14000e501
uint64_t v162 = 0x3b9aca00 * (int64_t)*v161; // 0x14000e510
*v161 = (int32_t)v162;
int64_t v163 = v162 / 0x100000000; // 0x14000e51b
int64_t v164 = v160 + 1; // 0x14000e51f
v160 = v164 & 0xffffffff;
while (v8 != (int32_t)v164) {
// 0x14000e501
v161 = (int32_t *)(4 * v160 + v158);
v162 = 0x3b9aca00 * (int64_t)*v161 + v163;
*v161 = (int32_t)v162;
v163 = v162 / 0x100000000;
v164 = v160 + 1;
v160 = v164 & 0xffffffff;
}
int32_t v165 = v163; // 0x14000e527
if (v165 != 0) {
uint32_t v166 = v8; // 0x14000e52c
if (v166 >= 115) {
// 0x14000e540
v8 = 0;
memcpy_s((int64_t *)&v36, 460, (int64_t *)&v29, 0);
} else {
// 0x14000e532
*(int32_t *)(4 * (int64_t)v166 + v158) = v165;
v8++;
}
}
int64_t v167 = function_14000d020(&v8, &v121); // 0x14000e56e
int64_t v168 = v156 - v159; // 0x14000e58a
int64_t v169 = 8;
int64_t v170 = v167;
uint64_t v171 = 0xcccccccd * (v170 & 0xffffffff); // 0x14000e592
int64_t v172 = v171 / 0x800000000; // 0x14000e592
if ((int32_t)v168 >= (int32_t)v169) {
// 0x14000e5c3
*(char *)(v169 + v159) = (char)(v170 - 2 * ((4 * v172 & 252 | v171 & 0xffffff00) + v172)) + 48;
}
int64_t v173 = v169 + 0xffffffff; // 0x14000e5cd
while ((int32_t)v173 != -1) {
// 0x14000e58d
v169 = v173 & 0xffffffff;
v170 = v172;
v171 = 0xcccccccd * (v170 & 0xffffffff);
v172 = v171 / 0x800000000;
if ((int32_t)v168 >= (int32_t)v169) {
// 0x14000e5c3
*(char *)(v169 + v159) = (char)(v170 - 2 * ((4 * v172 & 252 | v171 & 0xffffff00) + v172)) + 48;
}
// 0x14000e5ca
v173 = v169 + 0xffffffff;
}
int64_t v174 = v168 - 9; // 0x14000e5e0
int64_t v175 = (v174 < 0 == (8 - v168 & v168) < 0 == (v174 != 0) ? 9 : v168) + v159; // 0x14000e5e7
v157 = v175;
if (v175 == v156) {
// break -> 0x14000e5f3
break;
}
v159 = v175;
v160 = 0;
v157 = v159;
}
}
// 0x14000e5f3
*(char *)v157 = 0;
goto lab_0x14000e645;
lab_0x14000d767:
// 0x14000d767
v8 = v312;
v121 = 1;
v151 = 4;
v180 = v313;
v88 = 1;
v123 = v312;
goto lab_0x14000da9d;
lab_0x14000d74e:;
int64_t v314 = 0; // 0x14000d753
v313 = v315;
v312 = v316;
if (v317 == 0) {
goto lab_0x14000d767;
} else {
goto lab_0x14000d755;
}
lab_0x14000d755:
// 0x14000d755
*(int32_t *)(4 * v314 + v318) = 0;
int64_t v319 = v314 + 1; // 0x14000d75a
v314 = v319 & 0xffffffff;
v313 = v315;
v312 = v316;
if ((int32_t)v319 != v320) {
goto lab_0x14000d755;
} else {
goto lab_0x14000d767;
}
lab_0x14000d706_2:;
int64_t v321 = v322 & 0xffffffff;
int64_t v323 = v321 - v317; // 0x14000d709
uint32_t v324 = (int32_t)v325; // 0x14000d70f
int64_t v326 = 0; // 0x14000d711
if ((int32_t)v323 >= v324) {
goto lab_0x14000d71d;
} else {
// 0x14000d713
v326 = (int64_t)*(int32_t *)((4 * v323 & 0x3fffffffc) + v318);
goto lab_0x14000d71d;
}
lab_0x14000d71d:;
int64_t v327 = v323 + 0xffffffff; // 0x14000d70c
int64_t v328 = 0; // 0x14000d71f
if ((int32_t)v327 >= v324) {
goto lab_0x14000d729;
} else {
// 0x14000d721
v328 = (int64_t)*(int32_t *)((4 * v327 & 0x3fffffffc) + v318);
goto lab_0x14000d729;
}
lab_0x14000d729:;
int64_t v329 = v328 & (v330 ^ 0xffffffff);
int64_t v331 = v332 == 0 ? v329 : (int64_t)((int32_t)v329 >> v332);
int64_t v333 = v326 & v330;
int64_t v334 = v335 == 0 ? v333 : (int64_t)((int32_t)v333 << v335);
*(int32_t *)(4 * v321 + v318) = (int32_t)(v331 | v334);
int64_t v336 = v321 + 0xffffffff; // 0x14000d741
v315 = v334;
if (v337 == (int32_t)v336) {
goto lab_0x14000d74e;
} else {
// 0x14000d749
v325 = v8;
v322 = v336;
goto lab_0x14000d706_2;
}
lab_0x14000d8e9:
// 0x14000d8e9
v8 = v338;
uint64_t v339 = 1078 - v340; // 0x14000d8f2
int64_t v341 = v339 / 32 & 0x7ffffff; // 0x14000d900
int64_t v342 = 4 * v341; // 0x14000d905
function_140001e50((int64_t *)&v29, 0, v342, v343);
*(int32_t *)(v342 + v344) = 1 << ((int32_t)v339 & 31);
v177 = v341;
v179 = v343;
v181 = v345;
goto lab_0x14000d923;
lab_0x14000d978:;
int64_t v346 = v347 & 0xffffffff;
uint32_t v348 = (int32_t)v349; // 0x14000d97f
int64_t v350 = 0; // 0x14000d981
if ((int32_t)v347 >= v348) {
goto lab_0x14000d98d;
} else {
// 0x14000d983
v350 = (int64_t)*(int32_t *)(4 * v346 + v351);
goto lab_0x14000d98d;
}
lab_0x14000d98d:;
int64_t v352 = v347 + 0xffffffff; // 0x14000d97b
int64_t v353 = v352 & 0xffffffff; // 0x14000d97b
uint32_t v354 = (int32_t)v352; // 0x14000d98d
int32_t v355 = 0; // 0x14000d990
if (v354 >= v348) {
goto lab_0x14000d99b;
} else {
// 0x14000d992
v355 = *(int32_t *)(4 * v353 + v351);
goto lab_0x14000d99b;
}
lab_0x14000d99b:
// 0x14000d99b
*(int32_t *)(4 * v346 + v351) = v355 / 0x40000000 | 4 * (int32_t)v350;
v343 = v350;
if (v354 == -1) {
goto lab_0x14000d8e9;
} else {
// 0x14000d9b7
v347 = v353;
v349 = v8;
goto lab_0x14000d978;
}
}
// Address range: 0x14000e718 - 0x14000e72c
int64_t function_14000e718(int64_t a1) {
// 0x14000e718
return function_1400107ec(function_1400107f8() & 0xffffffff);
}
// Address range: 0x14000e72c - 0x14000e810
int64_t function_14000e72c(int64_t a1, int64_t a2) {
int64_t v1 = 0x100000000000000 * a1 / 0x100000000000000; // 0x14000e736
int32_t v2 = _fileno((struct _IO_FILE *)a2); // 0x14000e745
int32_t * v3 = (int32_t *)(a2 + 20); // 0x14000e74a
int64_t v4 = v2; // 0x14000e74d
if ((*v3 & 192) == 0) {
int64_t v5 = function_14000c840(v4 & 0xffffffff, (int64_t)&v1, 1); // 0x14000e7f5
// 0x14000e800
return v5 & -256 | (int64_t)((int32_t)v5 == 1);
}
int64_t v6 = a2 + 8; // 0x14000e75d
int64_t * v7 = (int64_t *)v6; // 0x14000e75d
int64_t v8 = *v7; // 0x14000e75d
int64_t v9; // 0x14000e72c
int32_t v10 = (int32_t)v9 - *(int32_t *)v6; // 0x14000e761
*(int64_t *)a2 = v8 + 1;
*(int32_t *)(a2 + 16) = *(int32_t *)(a2 + 32) - 1;
int64_t v11; // 0x14000e72c
int32_t v12; // 0x14000e72c
if (v10 < 1) {
int64_t v13 = v4 + 2; // 0x14000e792
int64_t v14 = v13 & 0xffffffff; // 0x14000e799
int64_t v15 = &g35; // 0x14000e799
if ((int32_t)v13 >= 2) {
// 0x14000e79b
v14 = *(int64_t *)(8 * v4 / 64 + (int64_t)&g85);
v15 = v14 + 72 * (v4 & 63);
}
// 0x14000e7c4
v11 = v14;
v12 = 0;
if ((*(char *)(v15 + 56) & 32) != 0) {
int64_t v16 = function_14000fe30(v4 & 0xffffffff, 0, 2, v4); // 0x14000e7d3
v11 = v16;
v12 = 0;
if (v16 == -1) {
// 0x14000e7de
*v3 = *v3 | 16;
// 0x14000e800
return v16 & -256 | 1;
}
}
} else {
int64_t v17 = function_14000c840(v4 & 0xffffffff, v8, (int64_t)v10); // 0x14000e77d
v11 = v17;
v12 = v17;
}
// 0x14000e784
*(char *)*v7 = (char)v1;
// 0x14000e800
return v11 & -256 & -256 | (int64_t)(v12 == v10);
}
// Address range: 0x14000e810 - 0x14000e889
int64_t function_14000e810(int64_t a1) {
int32_t v1 = *(int32_t *)(a1 + 20); // 0x14000e816
if ((v1 & 8) != 0) {
// 0x14000e883
int64_t v2; // 0x14000e810
return v2 & -256 | 1;
}
if ((v1 & 192) != 0) {
// 0x14000e82c
if (*(int64_t *)(a1 + 8) == a1) {
// 0x14000e883
return a1 & -256;
}
}
int64_t v3 = function_14000ade0((int64_t)*(int32_t *)(a1 + 24)); // 0x14000e838
if (v3 == -1) {
// 0x14000e883
return -256;
}
int64_t * hFile = (int64_t *)v3; // 0x14000e856
int64_t lpNewFilePointer; // bp+16, 0x14000e810
int64_t lpFileSize; // 0x14000e810
if (!SetFilePointerEx(hFile, (struct {int64_t e0;}){.e0 = 0}, (struct _LARGE_INTEGER *)&lpNewFilePointer, 1) || !GetFileSizeEx(hFile, (struct _LARGE_INTEGER *)&lpFileSize)) {
// 0x14000e883
return 0;
}
int64_t v4 = lpFileSize; // 0x14000e872
// 0x14000e883
return v4 & -256 | (int64_t)(lpNewFilePointer == v4);
}
// Address range: 0x14000e88c - 0x14000e943
int64_t function_14000e88c(int64_t a1, int64_t a2) {
// 0x14000e88c
_fileno((struct _IO_FILE *)a2);
int32_t * v1 = (int32_t *)(a2 + 20); // 0x14000e8a3
int32_t v2 = *v1; // 0x14000e8a3
if ((v2 & 6) == 0) {
// 0x14000e8aa
*_errno() = 9;
// 0x14000e8b5
*v1 = *v1 | 16;
// 0x14000e938
return 0xffffffff;
}
if ((v2 & 0x1000) != 0) {
// 0x14000e8c9
*_errno() = 34;
// 0x14000e8b5
*v1 = *v1 | 16;
// 0x14000e938
return 0xffffffff;
}
int32_t * v3; // 0x14000e88c
int32_t v4; // 0x14000e88c
if ((v2 & 1) == 0) {
// 0x14000e8d6
v3 = (int32_t *)(a2 + 16);
v4 = v2;
} else {
int64_t v5 = function_14000e810(a2); // 0x14000e8e0
int32_t * v6 = (int32_t *)(a2 + 16);
*v6 = 0;
if ((char)v5 == 0) {
// 0x14000e8b5
*v1 = *v1 | 16;
// 0x14000e938
return 0xffffffff;
}
// 0x14000e8ed
*(int64_t *)a2 = *(int64_t *)(a2 + 8);
int32_t v7 = *v1 & -2; // 0x14000e8f4
*v1 = v7;
v3 = v6;
v4 = v7;
}
// 0x14000e8f9
*v1 = v4 & -11 | 2;
*v3 = 0;
if ((*v1 & 1216) == 0) {
// 0x14000e911
if ((char)function_140008bf0(a2) == 0) {
// 0x14000e91d
function_140010b0c(a2);
}
}
int64_t result = a1 & 255; // 0x14000e928
if ((char)function_14000e72c(a2 & -256 || result, a2) != 0) {
// 0x14000e938
return result;
}
// 0x14000e8b5
*v1 = *v1 | 16;
// 0x14000e938
return 0xffffffff;
}
// Address range: 0x14000e944 - 0x14000e9a3
int64_t function_14000e944(int64_t a1) {
uint32_t v1 = (int32_t)a1; // 0x14000e948
if (v1 == -2) {
// 0x14000e94d
*_errno() = 9;
// 0x14000e99e
return 0;
}
if (v1 >= 0) {
// 0x14000e95e
if (g86 > v1) {
int64_t v2 = *(int64_t *)(8 * 0x100000000 * a1 / 0x4000000000 + (int64_t)&g85); // 0x14000e97e
// 0x14000e99e
return (int64_t)(*(char *)(72 * (a1 & 63) + 56 + v2) & 64);
}
}
// 0x14000e98c
*_errno() = 9;
int64_t v3; // 0x14000e944
int64_t v4; // 0x14000e944
int64_t v5; // 0x14000e944
function_140006270(a1, v5, v4, v3);
// 0x14000e99e
return 0;
}
// Address range: 0x14000e9b0 - 0x14000ed4d
int64_t function_14000e9b0(int64_t a1, uint64_t a2, int64_t a3, int64_t a4) {
// 0x14000e9b0
if (a1 == 0 == (a2 != 0) || a3 == 0 || a4 == 0) {
// 0x14000e9e2
*_errno() = 22;
function_140006270(a1, a2, a3, a4);
// 0x14000ed2f
return function_140011ed0(g29);
}
if (a2 < 2) {
// 0x14000ed2f
return function_140011ed0(g29);
}
// 0x14000ea0b
int64_t v1; // bp-1128, 0x14000e9b0
int64_t v2 = &v1; // 0x14000e9b6
int64_t v3 = v2 + 48;
int64_t v4 = v2 + 544;
int64_t v5 = 0; // 0x14000ea45
int64_t v6 = a3; // 0x14000ea45
int64_t v7 = a1; // 0x14000ea45
int64_t v8 = (a2 - 1) * a3 + a1; // 0x14000ea45
int64_t v9; // 0x14000e9b0
int64_t v10; // 0x14000e9b0
int64_t v11; // 0x14000e9b0
uint64_t v12; // 0x14000e9b0
int64_t v13; // 0x14000e9b0
int64_t v14; // 0x14000e9b0
while (true) {
lab_0x14000ea50_2:;
uint64_t v15 = v7;
int32_t v16 = v15;
int64_t v17 = v5;
int64_t v18 = v6; // 0x14000e9b0
int64_t v19 = v8; // 0x14000e9b0
int64_t v20; // 0x14000e9b0
int64_t v21; // 0x14000e9b0
while (true) {
// 0x14000ea50
v9 = v19;
v20 = v18;
v21 = v17;
uint64_t v22 = (v9 - v15) / a3 + 1; // 0x14000ea5b
if (v22 < 9) {
// break -> 0x14000ea69
break;
}
int64_t v23 = v22 / 2 * a3; // 0x14000eafa
int64_t v24 = v23 + v15; // 0x14000eb01
int64_t v25 = function_1400124a0(v16, v24, (int32_t)v20); // 0x14000eb08
int64_t v26 = v20; // 0x14000eb10
if ((int32_t)v25 >= 1) {
int64_t v27 = v24; // 0x14000eb1b
v26 = v24;
if (v23 != 0) {
char * v28 = (char *)v27; // 0x14000eb20
char * v29 = (char *)(v27 - v23); // 0x14000eb2a
*v29 = *v28;
*v28 = *v29;
int64_t v30 = v27 + 1; // 0x14000eb32
int64_t v31 = a3 - 1; // 0x14000eb35
v27 = v30;
int64_t v32 = v31; // 0x14000eb39
v26 = v30;
while (v31 != 0) {
// 0x14000eb20
v28 = (char *)v27;
v29 = (char *)(v27 - v23);
*v29 = *v28;
*v28 = *v29;
v30 = v27 + 1;
v31 = v32 - 1;
v27 = v30;
v32 = v31;
v26 = v30;
}
}
}
int64_t v33 = function_1400124a0(v16, v9, (int32_t)v26); // 0x14000eb44
int64_t v34 = v26; // 0x14000eb4c
if ((int32_t)v33 >= 1) {
// 0x14000eb4e
v34 = a3;
if (v9 != v15) {
int64_t v35 = v9; // 0x14000eb5f
int64_t v36 = a3; // 0x14000eb5f
char * v37 = (char *)v35; // 0x14000eb60
char * v38 = (char *)(v15 - v9 + v35); // 0x14000eb63
*v38 = *v37;
*v37 = *v38;
v36--;
v35++;
v34 = v36;
while (v36 != 0) {
// 0x14000eb60
v37 = (char *)v35;
v38 = (char *)(v15 - v9 + v35);
*v38 = *v37;
*v37 = *v38;
v36--;
v35++;
v34 = v36;
}
}
}
int64_t v39 = function_1400124a0((int32_t)v24, v9, (int32_t)v34); // 0x14000eb81
int64_t v40 = v34; // 0x14000eb89
if ((int32_t)v39 >= 1) {
// 0x14000eb8b
v40 = a3;
if (v24 != v9) {
int64_t v41 = v9; // 0x14000eb9c
int64_t v42 = a3; // 0x14000eb9c
char * v43 = (char *)v41; // 0x14000eba0
char * v44 = (char *)(v24 - v9 + v41); // 0x14000eba3
*v44 = *v43;
*v43 = *v44;
v42--;
v41++;
v40 = v42;
while (v42 != 0) {
// 0x14000eba0
v43 = (char *)v41;
v44 = (char *)(v24 - v9 + v41);
*v44 = *v43;
*v43 = *v44;
v42--;
v41++;
v40 = v42;
}
}
}
int64_t v45 = v15; // 0x14000ebbe
int64_t v46 = v24; // 0x14000ebbe
int64_t v47 = v9; // 0x14000ebbe
int64_t v48 = v40; // 0x14000ebbe
int64_t v49; // 0x14000e9b0
uint64_t v50; // 0x14000e9b0
int32_t v51; // 0x14000e9b0
while (true) {
// 0x14000ebc0
v10 = v48;
v50 = v46;
v51 = v10;
int64_t v52 = v45; // 0x14000ebc3
int64_t v53 = v45; // 0x14000ebc3
int64_t v54; // 0x14000e9b0
if (v50 > v45) {
int64_t v55 = v53 + a3; // 0x14000ebc5
v52 = v55;
while (v55 < v50) {
int64_t v56 = function_1400124a0((int32_t)v55, v50, v51); // 0x14000ebd6
v53 = v55;
v54 = v55;
if ((int32_t)v56 >= 1) {
goto lab_0x14000ec00;
}
v55 = v53 + a3;
v52 = v55;
}
}
int64_t v57 = v52; // 0x14000ebe2
v57 += a3;
v54 = v57;
while (v57 <= v9) {
int64_t v58 = function_1400124a0((int32_t)v57, v50, v51); // 0x14000ebf3
v54 = v57;
if ((int32_t)v58 >= 1) {
// break -> 0x14000ec00
break;
}
v57 += a3;
v54 = v57;
}
lab_0x14000ec00:
// 0x14000ec00
v12 = v54;
v49 = v47;
int64_t v59 = v49 - a3; // 0x14000ec03
while (v59 > v50) {
int32_t v60 = function_1400124a0((int32_t)v59, v50, v51); // 0x14000ec1a
int64_t v61 = v59; // 0x14000ec1c
if (v60 >= 0 != v60 != 0) {
// break -> 0x14000ec1e
break;
}
v49 = v61;
v59 = v49 - a3;
}
if (v12 > v59) {
// break -> 0x14000ec5b
break;
}
int64_t v62 = a3; // 0x14000ec29
if (v12 != v59) {
int64_t v63 = v59; // 0x14000ec2e
int64_t v64 = a3; // 0x14000ec2e
char * v65 = (char *)v63; // 0x14000ec31
char * v66 = (char *)(v12 - v59 + v63); // 0x14000ec34
*v66 = *v65;
*v65 = *v66;
v64--;
v63++;
v62 = v64;
while (v64 != 0) {
// 0x14000ec31
v65 = (char *)v63;
v66 = (char *)(v12 - v59 + v63);
*v66 = *v65;
*v65 = *v66;
v64--;
v63++;
v62 = v64;
}
}
// 0x14000ec49
v48 = v62;
v46 = v50 != v59 ? v50 : v12;
v45 = v12;
v47 = v59;
}
int64_t v67 = v49; // 0x14000ec5e
int64_t v68 = v49; // 0x14000ec5e
int64_t v69; // 0x14000e9b0
if (v50 < v49) {
int64_t v70 = v67 - a3; // 0x14000ec60
v68 = v70;
while (v70 > v50) {
int64_t v71 = function_1400124a0((int32_t)v70, v50, v51); // 0x14000ec71
v67 = v70;
v69 = v70;
if ((int32_t)v71 != 0) {
goto lab_0x14000ec9b;
}
v70 = v67 - a3;
v68 = v70;
}
}
int64_t v72 = v68; // 0x14000ec80
v72 -= a3;
v69 = v72;
while (v72 > v15) {
int64_t v73 = function_1400124a0((int32_t)v72, v50, v51); // 0x14000ec91
v69 = v72;
if ((int32_t)v73 != 0) {
// break -> 0x14000ec9b
break;
}
v72 -= a3;
v69 = v72;
}
lab_0x14000ec9b:;
uint64_t v74 = v69;
if (v74 - v15 >= v9 - v12) {
// 0x14000ecb1
v14 = v21;
if (v74 <= v15) {
goto lab_0x14000eccb;
} else {
int64_t v75 = 8 * v21; // 0x14000ecb6
*(int64_t *)(v75 + v3) = v15;
*(int64_t *)(v75 + v4) = v74;
v14 = v21 + 1;
goto lab_0x14000eccb;
}
}
int64_t v76 = v21; // 0x14000ecdf
if (v9 > v12) {
int64_t v77 = 8 * v21; // 0x14000ece1
*(int64_t *)(v77 + v3) = v12;
*(int64_t *)(v77 + v4) = v9;
v76 = v21 + 1;
}
// 0x14000ecf6
v17 = v76;
v18 = v10;
v19 = v74;
v13 = v17;
v11 = v10;
if (v74 <= v15) {
goto lab_0x14000ead3;
}
}
// 0x14000ea69
v13 = v21;
v11 = v20;
if (v9 > v15) {
int64_t v78 = v15 + a3; // 0x14000ea6e
int64_t v79 = v20; // 0x14000ea6e
uint64_t v80 = v9;
int64_t v81 = v15; // 0x14000ea7b
int32_t v82; // 0x14000ea8f
int64_t v83; // 0x14000ea91
int64_t v84; // 0x14000ea95
if (v78 <= v80) {
// 0x14000ea80
v83 = v15;
v84 = v78;
v82 = function_1400124a0((int32_t)v84, v83, (int32_t)v79);
v83 = v82 >= 0 == (v82 != 0) ? v84 : v83;
v84 += a3;
v81 = v83;
while (v84 <= v80) {
// 0x14000ea80
v82 = function_1400124a0((int32_t)v84, v83, (int32_t)v79);
v83 = v82 >= 0 == (v82 != 0) ? v84 : v83;
v84 += a3;
v81 = v83;
}
}
int64_t v85 = v81;
int64_t v86 = a3; // 0x14000eaa6
int64_t v87; // 0x14000e9b0
char * v88; // 0x14000eab0
char * v89; // 0x14000eab3
int64_t v90; // 0x14000eac0
if (v85 != v80) {
// 0x14000eaa8
v87 = v80;
v90 = a3;
v88 = (char *)v87;
v89 = (char *)(v85 - v80 + v87);
*v89 = *v88;
*v88 = *v89;
v90--;
v87++;
v86 = v90;
while (v90 != 0) {
// 0x14000eab0
v88 = (char *)v87;
v89 = (char *)(v85 - v80 + v87);
*v89 = *v88;
*v88 = *v89;
v90--;
v87++;
v86 = v90;
}
}
int64_t v91 = v80 - a3; // 0x14000eac6
v79 = v86;
v13 = v21;
v11 = v86;
while (v91 > v15) {
// 0x14000ea72
v80 = v91;
v81 = v15;
if (v78 <= v80) {
// 0x14000ea80
v83 = v15;
v84 = v78;
v82 = function_1400124a0((int32_t)v84, v83, (int32_t)v79);
v83 = v82 >= 0 == (v82 != 0) ? v84 : v83;
v84 += a3;
v81 = v83;
while (v84 <= v80) {
// 0x14000ea80
v82 = function_1400124a0((int32_t)v84, v83, (int32_t)v79);
v83 = v82 >= 0 == (v82 != 0) ? v84 : v83;
v84 += a3;
v81 = v83;
}
}
// 0x14000ea9d
v85 = v81;
v86 = a3;
if (v85 != v80) {
// 0x14000eaa8
v87 = v80;
v90 = a3;
v88 = (char *)v87;
v89 = (char *)(v85 - v80 + v87);
*v89 = *v88;
*v88 = *v89;
v90--;
v87++;
v86 = v90;
while (v90 != 0) {
// 0x14000eab0
v88 = (char *)v87;
v89 = (char *)(v85 - v80 + v87);
*v89 = *v88;
*v88 = *v89;
v90--;
v87++;
v86 = v90;
}
}
// 0x14000eac6
v91 = v80 - a3;
v79 = v86;
v13 = v21;
v11 = v86;
}
}
goto lab_0x14000ead3;
}
// 0x14000ed2f
return function_140011ed0(g29);
lab_0x14000ead3:;
int64_t v92 = v13 - 1; // 0x14000ead3
if (v92 < 0) {
return function_140011ed0(g29);
}
int64_t v93 = 8 * v92; // 0x14000eae2
v5 = v92;
v6 = v11;
v7 = *(int64_t *)(v93 + v3);
v8 = *(int64_t *)(v93 + v4);
goto lab_0x14000ea50_2;
lab_0x14000ea50:
// 0x14000ea50
goto lab_0x14000ea50_2;
lab_0x14000eccb:
// 0x14000eccb
v13 = v14;
v11 = v10;
v5 = v14;
v6 = v10;
v7 = v12;
v8 = v9;
if (v9 <= v12) {
goto lab_0x14000ead3;
} else {
goto lab_0x14000ea50;
}
}
// Address range: 0x14000ed50 - 0x14000ee23
int64_t function_14000ed50(int64_t a1, int64_t a2, int64_t a3, int64_t a4) {
int64_t v1; // 0x14000ed50
int64_t v2; // 0x14000ed50
int32_t * v3; // 0x14000ed50
int64_t v4; // 0x14000ed50
if (a4 != 0) {
if (a1 == 0 || a2 == 0) {
goto lab_0x14000ed72;
} else {
if (a3 != 0) {
int64_t v5 = a3 - a1; // 0x14000edb2
int64_t v6 = a2; // 0x14000edc2
int64_t v7 = a4; // 0x14000edc2
int64_t v8 = a2; // 0x14000edc2
int64_t v9; // 0x14000ed50
int64_t v10; // 0x14000ed50
if (a4 != -1) {
char v11 = *(char *)(a1 + v5); // 0x14000edd8
*(char *)a1 = v11;
int64_t v12 = a1 + 1; // 0x14000eddd
int64_t v13 = v7; // 0x14000ede2
int64_t v14 = v8; // 0x14000ede2
while (v11 != 0) {
int64_t v15 = v8 - 1; // 0x14000ede4
v13 = v7;
v14 = 0;
if (v15 == 0) {
// break -> 0x14000edf0
break;
}
int64_t v16 = v7 - 1; // 0x14000edea
v7 = v16;
v8 = v15;
v13 = v16;
v14 = v15;
if (v16 == 0) {
// break -> 0x14000edf0
break;
}
v11 = *(char *)(v12 + v5);
*(char *)v12 = v11;
v12++;
v13 = v7;
v14 = v8;
}
// 0x14000edf0
v10 = v12;
v9 = v14;
if (v13 == 0) {
// 0x14000edf5
*(char *)v12 = 0;
v10 = v12;
v9 = v14;
}
} else {
char v17 = *(char *)(a1 + v5); // 0x14000edc4
*(char *)a1 = v17;
int64_t v18 = a1 + 1; // 0x14000edc9
v10 = v18;
v9 = v6;
while (v17 != 0) {
int64_t v19 = v6 - 1; // 0x14000edd0
v6 = v19;
v10 = v18;
v9 = v19;
if (v19 == 0) {
// break -> 0x14000edf8
break;
}
v17 = *(char *)(v18 + v5);
*(char *)v18 = v17;
v18++;
v10 = v18;
v9 = v6;
}
}
// 0x14000edf8
if (v9 != 0) {
// 0x14000ed86
return 0;
}
if (a4 == -1) {
// 0x14000ee03
*(char *)(a1 - 1 + a2) = 0;
// 0x14000ed86
return v9 + 80 & 0xffffffff & 0xffffffff;
}
// 0x14000ee11
*(char *)a1 = 0;
v2 = v10;
v1 = v9;
v3 = _errno();
v4 = 34;
goto lab_0x14000ed7c;
} else {
// 0x14000edad
*(char *)a1 = 0;
goto lab_0x14000ed72;
}
}
} else {
if (a1 != 0) {
if (a2 != 0) {
// 0x14000eda3
*(char *)a1 = 0;
// 0x14000ed86
return 0;
}
} else {
// 0x14000ed6d
if (a2 == 0) {
// 0x14000ed86
return 0;
}
}
goto lab_0x14000ed72;
}
lab_0x14000ed72:
// 0x14000ed72
v2 = a2;
v1 = a3;
v3 = _errno();
v4 = 22;
goto lab_0x14000ed7c;
lab_0x14000ed7c:
// 0x14000ed7c
*v3 = (int32_t)v4;
function_140006270(a1, v2, v1, a4);
// 0x14000ed86
return v4 & 0xffffffff;
}
// Address range: 0x14000f298 - 0x14000f334
int64_t function_14000f298(uint64_t a1, uint64_t a2, int64_t a3) {
// 0x14000f298
if (a1 == 0 || a2 == 0) {
// 0x14000f2b5
*_errno() = 22;
int64_t v1; // 0x14000f298
function_140006270(a1, a2, 0, v1);
// 0x14000f329
return 0;
}
// 0x14000f2ce
if (a1 >= a2) {
// 0x14000f329
return 0;
}
// 0x14000f2d3
int64_t v2; // bp-40, 0x14000f298
function_14000331c(&v2, 0);
int64_t v3 = a2 - 1; // 0x14000f2e5
int64_t result = v3; // 0x14000f2ed
int64_t v4; // 0x14000f298
if (*(int32_t *)(v4 + 8) != 0) {
int64_t v5 = v3 - 1; // 0x14000f2ef
while (v5 >= a1) {
// 0x14000f2f7
if ((*(char *)(v4 + 25 + (int64_t)*(char *)v5) & 4) == 0) {
// break -> 0x14000f301
break;
}
v5--;
}
// 0x14000f301
result = -1 - (a2 - v5 & 1) + a2;
}
// 0x14000f313
char v6; // 0x14000f298
if (v6 != 0) {
int32_t * v7 = (int32_t *)(v2 + 936); // 0x14000f31f
*v7 = *v7 & -3;
}
// 0x14000f329
return result;
}
// Address range: 0x14000f334 - 0x14000f649
int64_t function_14000f334(int64_t a1, int64_t a2, int64_t a3, int64_t a4, uint32_t a5, int64_t a6, uint32_t a7, int32_t a8, int32_t a9) {
int64_t v1 = a1; // 0x14000f374
if (a5 >= 1) {
// 0x14000f376
function_140010b78(a4, (int64_t)a5);
v1 = a4;
}
int32_t v2 = a8; // 0x14000f391
if (a8 == 0) {
// 0x14000f393
v2 = *(int32_t *)(v1 + 12);
}
int64_t v3 = function_14000a420(v2, a9 == 0 ? 1 : 9); // 0x14000f3bb
if ((int32_t)v3 == 0) {
// 0x14000f601
return function_140011ed0(g29);
}
int64_t v4 = 0x100000000 * v3;
int64_t v5 = v4 / 0x80000000; // 0x14000f3d8
uint64_t v6 = v5 + 16; // 0x14000f3db
if (v5 > 0xffffffffffffffef || v6 == 0) {
// 0x14000f601
return function_140011ed0(g29);
}
// 0x14000f3ea
int64_t v7; // bp-136, 0x14000f334
int64_t v8 = &v7; // 0x14000f33e
int64_t v9; // 0x14000f334
int64_t v10; // 0x14000f334
int64_t v11; // 0x14000f334
int64_t v12; // 0x14000f334
if (v6 < 1025) {
int64_t v13 = v8 - __chkstk(v6, v6, 0xffffffffffffff0); // 0x14000f408
int64_t v14 = v13 + 80; // 0x14000f40b
if (v14 == 0) {
// 0x14000f601
return function_140011ed0(g29);
}
// 0x14000f419
*(int32_t *)v14 = 0xcccc;
v11 = v13;
v9 = v14;
goto lab_0x14000f437;
} else {
int64_t * v15 = _malloc_base((int32_t)v6); // 0x14000f424
int64_t v16 = (int64_t)v15; // 0x14000f424
v12 = v8;
v10 = v16;
if (v15 == NULL) {
goto lab_0x14000f43f;
} else {
// 0x14000f431
*(int32_t *)v15 = 0xdddd;
v11 = v8;
v9 = v16;
goto lab_0x14000f437;
}
}
lab_0x14000f437:
// 0x14000f437
v12 = v11;
v10 = v9 + 16;
goto lab_0x14000f43f;
lab_0x14000f43f:
// 0x14000f43f
if (v10 == 0) {
// 0x14000f601
return function_140011ed0(g29);
}
int64_t v17 = v4 / 0x100000000; // 0x14000f3c0
int32_t * v18 = (int32_t *)(v12 + 40); // 0x14000f448
*v18 = (int32_t)v17;
int64_t * v19 = (int64_t *)(v12 + 32); // 0x14000f453
*v19 = v10;
int64_t v20; // 0x14000f334
int64_t v21; // 0x14000f334
int64_t v22; // 0x14000f334
int64_t v23; // 0x14000f334
int64_t v24; // 0x14000f36c
int64_t v25; // 0x14000f473
int64_t v26; // 0x14000f49f
if ((int32_t)function_14000a420(v2, 1) == 0) {
goto lab_0x14000f5ee;
} else {
// 0x14000f46d
v24 = a3 & 0xffffffff;
int64_t * v27 = (int64_t *)(v12 + 64); // 0x14000f46d
*v27 = 0;
v25 = v17 & 0xffffffff;
int64_t * v28 = (int64_t *)(v12 + 56); // 0x14000f476
*v28 = 0;
int64_t * v29 = (int64_t *)(v12 + 48); // 0x14000f47f
*v29 = 0;
*v18 = 0;
*v19 = 0;
int64_t v30 = __acrt_LCMapStringEx(a2, v24, v10, v25); // 0x14000f49a
if ((int32_t)v30 == 0) {
goto lab_0x14000f5ee;
} else {
int64_t v31 = 0x100000000 * v30;
v26 = v31 / 0x100000000;
if ((a3 & 1024) == 0) {
int64_t v32 = v31 / 0x80000000; // 0x14000f509
uint64_t v33 = v32 - (v32 | (int64_t)(v32 < 0xfffffffffffffff0)) & v32 + 16; // 0x14000f516
if (v33 == 0) {
goto lab_0x14000f5ee;
} else {
if (v33 > 1024) {
int64_t * v34 = _malloc_base((int32_t)v33); // 0x14000f555
int64_t v35 = (int64_t)v34; // 0x14000f555
v21 = v35;
v23 = v12;
if (v34 == NULL) {
goto lab_0x14000f570;
} else {
// 0x14000f562
*(int32_t *)v34 = 0xdddd;
v20 = v35;
v22 = v12;
goto lab_0x14000f568;
}
} else {
int64_t v36 = v12 - __chkstk(v33, 1024, v10); // 0x14000f53c
int64_t v37 = v36 + 80; // 0x14000f53f
if (v37 == 0) {
goto lab_0x14000f5ee;
} else {
// 0x14000f54d
*(int32_t *)v37 = 0xcccc;
v20 = v37;
v22 = v36;
goto lab_0x14000f568;
}
}
}
} else {
if (a7 != 0 && v26 <= (int64_t)a7) {
// 0x14000f4c7
*v27 = 0;
*v28 = 0;
*v29 = 0;
*v18 = a7;
*v19 = a6;
__acrt_LCMapStringEx(a2, v24, v10, v25);
}
goto lab_0x14000f5ee;
}
}
}
lab_0x14000f5ee:;
int64_t v38 = v10 - 16; // 0x14000f5ee
if (*(int32_t *)v38 == 0xdddd) {
// 0x14000f5fa
_free_base((int64_t *)v38);
}
// 0x14000f601
return function_140011ed0(g29);
lab_0x14000f570:
// 0x14000f570
if (v21 == 0) {
goto lab_0x14000f5ee;
} else {
// 0x14000f575
*(int64_t *)(v23 + 64) = 0;
int64_t * v39 = (int64_t *)(v23 + 56); // 0x14000f57e
*v39 = 0;
int64_t * v40 = (int64_t *)(v23 + 48); // 0x14000f587
*v40 = 0;
int32_t v41 = v26; // 0x14000f590
int32_t * v42 = (int32_t *)(v23 + 40); // 0x14000f590
*v42 = v41;
int64_t * v43 = (int64_t *)(v23 + 32); // 0x14000f597
*v43 = v21;
if ((int32_t)__acrt_LCMapStringEx(a2, v24, v10, v25) == 0) {
goto lab_0x14000f5d6;
} else {
// 0x14000f5a5
*v39 = 0;
*v40 = 0;
*v42 = a7 != 0 ? a7 : 0;
*v43 = a7 != 0 ? a6 : 0;
int64_t v44 = function_14000a47c(v2, 0, v21, v41, (int64_t)&g113, (int32_t)&g113); // 0x14000f5cb
if ((int32_t)v44 != 0) {
int64_t v45 = v21 - 16; // 0x14000f636
if (*(int32_t *)v45 == 0xdddd) {
// 0x14000f642
_free_base((int64_t *)v45);
}
goto lab_0x14000f5ee;
} else {
goto lab_0x14000f5d6;
}
}
}
lab_0x14000f568:
// 0x14000f568
v21 = v20 + 16;
v23 = v22;
goto lab_0x14000f570;
lab_0x14000f5d6:;
int64_t v46 = v21 - 16; // 0x14000f5d6
if (*(int32_t *)v46 == 0xdddd) {
// 0x14000f5e2
_free_base((int64_t *)v46);
}
goto lab_0x14000f5ee;
}
// Address range: 0x14000f6e4 - 0x14000f6fb
int64_t function_14000f6e4(int64_t a1) {
// 0x14000f6e4
return (char)__acrt_initialize_multibyte() == 0;
}
// Address range: 0x14000f6fc - 0x14000f711
int32_t function_14000f6fc(char * String1, char * String2, int32_t MaxCount) {
// 0x14000f6fc
if (g78 == 0) {
_strnicmp(String1, String2, MaxCount);
}
// 0x14000f709
return _strnicoll_l(String1, String2, MaxCount, 0);
}
// Address range: 0x14000f814 - 0x14000f9ab
int64_t function_14000f814(int64_t a1, int64_t a2) {
int64_t v1 = 0; // bp-72, 0x14000f83c
int64_t v2 = 0; // bp-120, 0x14000f85d
int64_t v3; // bp-152, 0x14000f814
function_14000331c(&v3, 0);
int64_t v4; // 0x14000f814
int32_t * v5 = (int32_t *)(v4 + 12); // 0x14000f883
int64_t v6; // 0x14000f814
char v7; // 0x14000f814
if (*v5 != 0xfde9) {
// 0x14000f89e
if ((int32_t)__acrt_AreFileApisANSI() != 0) {
// 0x14000f8c0
v6 = 0;
if (v7 != 0) {
int32_t * v8 = (int32_t *)(v3 + 936); // 0x14000f8ca
*v8 = *v8 & -3;
v6 = 0;
}
} else {
// 0x14000f8a7
v6 = 1;
if (v7 != 0) {
int32_t * v9 = (int32_t *)(v3 + 936); // 0x14000f8b1
*v9 = *v9 & -3;
v6 = 1;
}
}
} else {
// 0x14000f888
v6 = 0xfde9;
if (v7 != 0) {
int32_t * v10 = (int32_t *)(v3 + 936); // 0x14000f892
*v10 = *v10 & -3;
v6 = 0xfde9;
}
}
// 0x14000f8d4
int64_t v11; // 0x14000f814
if ((int32_t)function_140008d50(a1, &v1, v6, v11) != 0) {
// 0x14000f98c
return 0;
}
// 0x14000f8e8
function_14000331c(&v3, 0);
int64_t v12; // 0x14000f814
if (*v5 != 0xfde9) {
// 0x14000f90f
if ((int32_t)__acrt_AreFileApisANSI() != 0) {
// 0x14000f930
v12 = 0;
if (v7 != 0) {
int32_t * v13 = (int32_t *)(v3 + 936); // 0x14000f93a
*v13 = *v13 & -3;
v12 = 0;
}
} else {
// 0x14000f918
v12 = 1;
if (v7 != 0) {
int32_t * v14 = (int32_t *)(v3 + 936); // 0x14000f922
*v14 = *v14 & -3;
v12 = 1;
}
}
} else {
// 0x14000f8fc
v12 = 0xfde9;
if (v7 != 0) {
int32_t * v15 = (int32_t *)(v3 + 936); // 0x14000f906
*v15 = *v15 & -3;
v12 = 0xfde9;
}
}
int64_t v16 = function_140008d50(a2, &v2, v12, v11); // 0x14000f94e
int64_t result = 0; // 0x14000f959
if ((int32_t)v16 == 0) {
// 0x14000f95b
result = SetEnvironmentVariableW(NULL, NULL) ? 0xffffffff : 0;
}
// 0x14000f98c
return result;
}
// Address range: 0x14000f9ac - 0x14000f9f7
int64_t function_14000f9ac(int64_t a1, int64_t a2, int64_t a3) {
int64_t v1 = a3; // 0x14000f9b5
int64_t v2 = a1; // 0x14000f9b5
if (a3 == 0) {
// 0x14000f9b7
return 0;
}
int64_t v3 = a2; // 0x14000f9b5
uint16_t v4 = *(int16_t *)v2; // 0x14000f9ba
uint16_t v5 = *(int16_t *)v3; // 0x14000f9c2
int64_t v6 = v4;
int32_t v7 = v5;
int64_t v8 = v4 == 90 | (int32_t)v4 < 90 ? v6 + 32 : v6; // 0x14000f9d7
uint32_t result = (int32_t)v8 - (v5 == 90 | v7 < 90 ? v7 + 32 : v7); // 0x14000f9e7
while (v8 != 0 && result == 0) {
// 0x14000f9f0
v1--;
v2 += 2;
v3 += 2;
if (v1 == 0) {
// break -> 0x14000f9b7
break;
}
v4 = *(int16_t *)v2;
v5 = *(int16_t *)v3;
v6 = v4;
v7 = v5;
v8 = v4 == 90 | (int32_t)v4 < 90 ? v6 + 32 : v6;
result = (int32_t)v8 - (v5 == 90 | v7 < 90 ? v7 + 32 : v7);
}
// 0x14000f9b7
return result;
}
// Address range: 0x14000fa34 - 0x14000faae
int64_t function_14000fa34(int64_t lpMem, uint64_t a2) {
if (lpMem == 0) {
// 0x14000fa72
return (int64_t)_malloc_base((int32_t)a2);
}
if (a2 == 0) {
// 0x14000fa58
_free_base((int64_t *)lpMem);
// 0x14000fa72
return 0;
}
if (a2 >= 0xffffffffffffffe1) {
// 0x14000fa65
*_errno() = 12;
// 0x14000fa72
return 0;
}
int32_t dwBytes = a2; // 0x14000faa1
int64_t * v1 = HeapReAlloc((int64_t *)g96, 0, (int64_t *)lpMem, dwBytes); // 0x14000faa1
while (v1 == NULL) {
// 0x14000fa7d
if ((int32_t)function_14000557c() == 0 || _callnewh(dwBytes) == 0) {
// 0x14000fa65
*_errno() = 12;
// 0x14000fa72
return 0;
}
v1 = HeapReAlloc((int64_t *)g96, 0, (int64_t *)lpMem, dwBytes);
}
// 0x14000fa72
return (int64_t)v1;
}
// Address range: 0x14000fab0 - 0x14000fb21
int64_t function_14000fab0(int64_t * a1, int32_t * a2, int64_t * a3, int32_t * a4, int32_t * a5) {
// 0x14000fab0
int64_t v1; // 0x14000fab0
function_14000acd4((int32_t)v1);
int64_t v2; // 0x14000fab0
int64_t v3 = 0x100000000 * v2;
int64_t v4 = *(int64_t *)(8 * v3 / 0x4000000000 + (int64_t)&g85); // 0x14000faeb
int64_t result; // 0x14000fab0
if ((*(char *)(72 * (v2 & 63) + 56 + v4) & 1) == 0) {
// 0x14000faff
*_errno() = 9;
result = 0xffffffff;
} else {
// 0x14000faf6
result = function_14000fbc8(v3 / 0x100000000) & 0xffffffff;
}
// 0x14000fb0d
int64_t v5; // 0x14000fab0
function_14000acfc((int32_t)v5);
return result;
}
// Address range: 0x14000fb24 - 0x14000fbc5
int64_t function_14000fb24(int64_t a1) {
int64_t v1 = 0x100000000 * a1;
int64_t v2 = v1 / 0x100000000; // 0x14000fb24
int64_t v3 = v2; // 0x14000fb24
uint32_t v4 = (int32_t)v2; // 0x14000fb2f
if (v4 == -2) {
// 0x14000fb34
*__doserrno() = 0;
*_errno() = 9;
// 0x14000fbc0
return 0xffffffff;
}
int64_t v5 = a1; // 0x14000fb4b
int64_t v6; // 0x14000fb24
if ((int32_t)a1 >= 0) {
// 0x14000fb4d
v5 = a1;
if (g86 > v4) {
int64_t v7 = v2 & 63; // 0x14000fb5f
int64_t v8 = *(int64_t *)(8 * v1 / 0x4000000000 + (int64_t)&g85); // 0x14000fb6d
v6 = &g85;
v5 = 9 * v7;
if ((*(char *)(72 * v7 + 56 + v8) & 1) != 0) {
int64_t v9 = v2; // bp+24, 0x14000fb7d
int64_t v10 = v2; // bp+32, 0x14000fb81
int32_t * v11 = (int32_t *)&v3; // bp-24, 0x14000fb8f
int64_t v12; // bp+16, 0x14000fb24
int64_t result = function_14000fab0(&v12, (int32_t *)&v10, (int64_t *)&v11, (int32_t *)&v9, (int32_t *)&v3); // 0x14000fb9e
// 0x14000fbc0
return result;
}
}
}
// 0x14000fba5
*__doserrno() = 0;
*_errno() = 9;
int64_t v13; // 0x14000fb24
function_140006270(v5, v2, v6, v13);
// 0x14000fbc0
return 0xffffffff;
}
// Address range: 0x14000fbc8 - 0x14000fc85
int64_t function_14000fbc8(int64_t a1) {
int64_t v1 = 0x100000000 * a1;
int64_t v2 = v1 / 0x100000000; // 0x14000fbd2
int64_t v3 = v2 & 0xffffffff; // 0x14000fbd5
int64_t errorCode = 0; // 0x14000fbe0
int32_t v4; // 0x14000fbf2
if (function_14000ade0(v3) != -1) {
// 0x14000fbe6
v4 = v2;
if (v4 != 1) {
goto lab_0x14000fc00;
} else {
// 0x14000fbf7
if ((*(char *)(g85 + 200) & (char)v2) != 0) {
goto lab_0x14000fc0d;
} else {
goto lab_0x14000fc00;
}
}
} else {
goto lab_0x14000fc40;
}
lab_0x14000fc40:;
// 0x14000fc40
int64_t v5; // 0x14000fbc8
function_14000ad24(v3, v5);
int64_t v6 = v2 & 63; // 0x14000fc51
int64_t v7 = *(int64_t *)(8 * v1 / 0x4000000000 + (int64_t)&g85); // 0x14000fc5f
*(char *)(72 * v6 + 56 + v7) = 0;
int64_t result = 0; // 0x14000fc6a
if (errorCode != 0) {
// 0x14000fc6c
__acrt_errno_map_os_error(errorCode, 9 * v6, (int64_t)&g85);
result = 0xffffffff;
}
// 0x14000fc7a
return result;
lab_0x14000fc00:
if (v4 != 2) {
goto lab_0x14000fc24;
} else {
// 0x14000fc04
if ((*(char *)(g85 + 128) & 1) == 0) {
goto lab_0x14000fc24;
} else {
goto lab_0x14000fc0d;
}
}
lab_0x14000fc24:;
int64_t hObject = function_14000ade0(v3); // 0x14000fc26
errorCode = 0;
if (!CloseHandle((int64_t *)hObject)) {
// 0x14000fc38
errorCode = GetLastError();
}
goto lab_0x14000fc40;
lab_0x14000fc0d:;
int64_t v8 = function_14000ade0(2); // 0x14000fc0d
errorCode = 0;
if (function_14000ade0(1) == v8) {
goto lab_0x14000fc40;
} else {
goto lab_0x14000fc24;
}
}
// Address range: 0x14000fc88 - 0x14000fca4
int64_t function_14000fc88(int64_t a1) {
// 0x14000fc88
*(int32_t *)(a1 + 24) = -1;
*(int64_t *)a1 = 0;
*(int64_t *)(a1 + 8) = 0;
*(int32_t *)(a1 + 16) = 0;
*(int64_t *)(a1 + 28) = 0;
*(int64_t *)(a1 + 40) = 0;
int32_t * v1 = (int32_t *)(a1 + 20); // 0x14000fca0
*v1 = 0;
return (int64_t)*v1;
}
// Address range: 0x14000fca4 - 0x14000fd93
int64_t function_14000fca4(int64_t a1, int64_t a2, int64_t a3) {
int64_t v1 = 0x100000000 * a1;
int64_t v2 = v1 / 0x100000000; // 0x14000fcc5
uint32_t v3 = (int32_t)v2; // 0x14000fcc8
if (v3 == -2) {
// 0x14000fccd
*__doserrno() = 0;
*_errno() = 9;
// 0x14000fd7b
return -1;
}
if ((int32_t)a1 >= 0) {
// 0x14000fce9
if (g86 > v3) {
int64_t * v4 = (int64_t *)(8 * v1 / 0x4000000000 + (int64_t)&g85); // 0x14000fd09
int64_t v5 = 72 * (v2 & 63) + 56;
if ((*(char *)(*v4 + v5) & 1) != 0) {
// 0x14000fd16
function_14000acd4(v3);
int64_t result; // 0x14000fca4
if ((*(char *)(*v4 + v5) & 1) != 0) {
// 0x14000fd43
result = function_14000fd94(v2 & 0xffffffff, a2, a3 & 0xffffffff);
} else {
// 0x14000fd2e
*_errno() = 9;
*__doserrno() = 0;
result = -1;
}
// 0x14000fd53
function_14000acfc(v3);
// 0x14000fd7b
return result;
}
}
}
// 0x14000fd5f
*__doserrno() = 0;
*_errno() = 9;
int64_t v6; // 0x14000fca4
function_140006270(a1, a2, a3, v6);
// 0x14000fd7b
return -1;
}
// Address range: 0x14000fd94 - 0x14000fe2d
int64_t function_14000fd94(int64_t a1, int64_t a2, int64_t dwMoveMethod) {
struct _LARGE_INTEGER liDistanceToMove; // 0x14000fdd8
int64_t v1 = 0x100000000 * a1;
int64_t v2 = v1 / 0x100000000; // 0x14000fda3
int64_t hFile = function_14000ade0(v2 & 0xffffffff); // 0x14000fdae
if (hFile == -1) {
// 0x14000fdb9
*_errno() = 9;
// 0x14000fe1d
return -1;
}
// 0x14000fdca
liDistanceToMove = (struct {int64_t e0;}){
.e0 = 0
};
liDistanceToMove.e0 = a2;
int64_t lpNewFilePointer; // bp+32, 0x14000fd94
bool v3 = SetFilePointerEx((int64_t *)hFile, liDistanceToMove, (struct _LARGE_INTEGER *)&lpNewFilePointer, (int32_t)dwMoveMethod); // 0x14000fdd8
if (!v3) {
// 0x14000fde2
__acrt_errno_map_os_error((int64_t)GetLastError(), a2, (int64_t)&lpNewFilePointer);
// 0x14000fe1d
return -1;
}
int64_t result = -1; // 0x14000fdfa
if (result != -1) {
int64_t v4 = *(int64_t *)(8 * v1 / 0x4000000000 + (int64_t)&g85); // 0x14000fe14
char * v5 = (char *)(72 * (v2 & 63) + 56 + v4); // 0x14000fe18
*v5 = *v5 & -3;
}
// 0x14000fe1d
return result;
}
// Address range: 0x14000fe30 - 0x14000fe35
int64_t function_14000fe30(int64_t a1, int32_t a2, int64_t a3, int64_t a4) {
// 0x14000fe30
return function_14000fca4(a1, (int64_t)a2, a3);
}
// Address range: 0x14000fe38 - 0x14000fe3d
int64_t function_14000fe38(int64_t a1, int32_t a2, int64_t a3) {
// 0x14000fe38
return function_14000fd94(a1, (int64_t)a2, a3);
}
// Address range: 0x14000fe40 - 0x14000fe7b
int64_t function_14000fe40(int64_t a1) {
int64_t v1 = 0x1000000000000 * a1 / 0x1000000000000; // 0x14000fe40
if ((int32_t)function_1400110c8() == 0) {
// 0x14000fe76
return 0xffff;
}
// 0x14000fe52
int64_t v2; // bp+16, 0x14000fe40
int64_t v3 = function_140011138((int16_t *)&v1, 1, &v2); // 0x14000fe61
int64_t result = 0xffff; // 0x14000fe68
if ((int32_t)v3 != 0) {
// 0x14000fe6a
result = v1 & 0xffff;
}
// 0x14000fe76
return result;
}
// Address range: 0x14000fe7c - 0x140010051
int64_t function_14000fe7c(int64_t * a1, int64_t a2, int64_t a3, int64_t a4) {
uint64_t v1 = a2 != 0 ? a3 : 1; // 0x14000fec7
if (v1 == 0) {
// 0x140010033
return function_140011ed0(g29);
}
int64_t v2 = a4 != 0 ? a4 : (int64_t)&g102; // 0x14000feb5
int64_t v3 = a2 != 0 ? a2 : (int64_t)&g11; // 0x14000fec0
int64_t v4 = a2 == 0 ? 0 : (int64_t)a1; // 0x14000fed1
int64_t v5 = v2 + 6; // 0x14000fee5
int16_t * v6 = (int16_t *)v5; // 0x14000fee5
int64_t v7; // 0x14000fe7c
int64_t v8; // 0x14000fe7c
int64_t v9; // 0x14000fe7c
int64_t v10; // 0x14000fe7c
if (*v6 != 0) {
unsigned char v11 = *(char *)(v2 + 4); // 0x14000ff54
unsigned char v12 = *(char *)v5; // 0x14000ff5b
v10 = (int64_t)*(int32_t *)v2;
v8 = v12;
v9 = v3;
v7 = v11;
if (v11 > 4 || v12 == 0 || v12 >= v11) {
// 0x140010021
*(int64_t *)v2 = 0;
*_errno() = 42;
// 0x140010033
return function_140011ed0(g29);
}
} else {
unsigned char v13 = *(char *)v3; // 0x14000feec
if (v13 >= 0) {
if (v4 != 0) {
// 0x14000fefd
*(int32_t *)v4 = (int32_t)v13;
}
// 0x140010033
return function_140011ed0(g29);
}
int64_t v14 = v13; // 0x14000feec
int64_t v15 = 2; // 0x14000ff16
if ((v14 & 224) != 192) {
// 0x14000ff1d
v15 = 3;
if ((v14 & 240) != 224) {
// 0x14000ff2b
v15 = 4;
if ((v14 & 248) != 240) {
// 0x140010021
*(int64_t *)v2 = 0;
*_errno() = 42;
// 0x140010033
return function_140011ed0(g29);
}
}
}
// 0x14000ff3b
v10 = (int64_t)((1 << ((int32_t)v15 ^ 7)) + 255) & v14;
v8 = v15;
v9 = v3 + 1;
v7 = v15;
}
uint64_t v16 = v8 & 255; // 0x14000ff7d
uint64_t v17 = v16 >= v1 ? v1 : v16; // 0x14000ff86
int64_t v18 = v9; // 0x14000ffb3
int64_t v19 = v10; // 0x14000ffb3
int64_t v20 = v10; // 0x14000ffb3
if (v9 - a2 < v17) {
char v21 = *(char *)v18; // 0x14000ff8c
while ((v21 & -64) == -128) {
// 0x14000ff9e
v18++;
v19 = 64 * v19 & 0xffffffc0 | (int64_t)(v21 & 63);
v20 = v19;
if (v18 - a2 >= v17) {
goto lab_0x14000ffb5;
}
v21 = *(char *)v18;
}
// 0x140010021
*(int64_t *)v2 = 0;
*_errno() = 42;
// 0x140010033
return function_140011ed0(g29);
}
lab_0x14000ffb5:
// 0x14000ffb5
if (v17 < v16) {
// 0x14000ffba
*(int16_t *)(v2 + 4) = (int16_t)v7 & 255;
*v6 = (int16_t)(v8 - v17) & 255;
*(int32_t *)v2 = (int32_t)v20;
// 0x140010033
return function_140011ed0(g29);
}
if ((v20 & 0xfffff800) == 0xd800) {
// 0x140010021
*(int64_t *)v2 = 0;
*_errno() = 42;
// 0x140010033
return function_140011ed0(g29);
}
uint32_t v22 = (int32_t)v20; // 0x14000ffe3
if (v22 >= 0x110000) {
// 0x140010021
*(int64_t *)v2 = 0;
*_errno() = 42;
// 0x140010033
return function_140011ed0(g29);
}
// 0x14000ffeb
int64_t v23; // bp-104, 0x14000fe7c
uint32_t v24 = *(int32_t *)((int64_t)&v23 + 24 + (4 * v7 & 1020)); // 0x140010007
if (v24 > v22) {
// 0x140010021
*(int64_t *)v2 = 0;
*_errno() = 42;
// 0x140010033
return function_140011ed0(g29);
}
if (v4 != 0) {
// 0x140010012
*(int32_t *)v4 = v22;
}
// 0x140010014
*(int64_t *)v2 = 0;
// 0x140010033
return function_140011ed0(g29);
}
// Address range: 0x140010054 - 0x1400100b7
int64_t function_140010054(int64_t * a1, uint32_t a2, int32_t a3) {
uint32_t v1 = a3 & -0x80001; // 0x14001005a
if ((a2 & -0x30f0320 & a3) == 0) {
int64_t v2 = function_140011268(a2, v1);
if (a1 != NULL) {
// 0x1400100a1
*(int32_t *)a1 = (int32_t)v2;
}
// 0x1400100b1
return 0;
}
int64_t v3 = (int64_t)a1; // 0x140010074
int64_t v4 = a2; // 0x140010074
if (a1 != NULL) {
// 0x140010076
*(int32_t *)a1 = (int32_t)function_140011268(0, 0);
v3 = 0;
v4 = 0;
}
// 0x140010081
*_errno() = 22;
function_140006270(v3, v4, (int64_t)v1, (int64_t)a2);
// 0x1400100b1
return 22;
}
// Address range: 0x1400100b8 - 0x1400100d8
int64_t function_1400100b8(int64_t * a1) {
// 0x1400100b8
*(int32_t *)a1 = (int32_t)function_1400107f8();
*(int32_t *)((int64_t)a1 + 4) = (int32_t)function_1400108ec();
return 0;
}
// Address range: 0x1400100d8 - 0x140010124
int64_t function_1400100d8(int64_t * a1) {
// 0x1400100d8
int64_t v1; // 0x1400100d8
int32_t v2 = v1;
function_140010940(v2);
int32_t * v3 = (int32_t *)((int64_t)a1 + 4); // 0x1400100e8
function_140010a88(*v3);
int32_t v4 = 0; // 0x1400100f0
if ((int32_t)function_1400100b8((int64_t *)&v4) != 0 || v4 != v2) {
// 0x14001011e
return 1;
}
// 0x14001010c
int32_t v5; // 0x1400100d8
if (*v3 == v5) {
// 0x14001011e
return 0;
}
// 0x14001011e
return 1;
}
// Address range: 0x140010124 - 0x140010174
int64_t function_140010124(int64_t * a1) {
int32_t v1 = 0; // bp+16, 0x14001012a
if ((int32_t)function_1400100b8((int64_t *)&v1) != 0) {
// 0x14001016e
return 1;
}
int32_t v2 = v1;
v1 = v2 | 31;
*a1 = (int64_t)v2;
int64_t v3 = function_1400100d8((int64_t *)&v1); // 0x140010157
int64_t result = 1; // 0x14001015e
if ((int32_t)v3 == 0) {
// 0x140010160
function_1400111f8();
result = 0;
}
// 0x14001016e
return result;
}
// Address range: 0x1400107ec - 0x1400107f5
int64_t function_1400107ec(int64_t a1) {
// 0x1400107ec
return a1 & 768;
}
// Address range: 0x1400107f8 - 0x1400108e9
int64_t function_1400107f8(void) {
// 0x1400107f8
uint32_t v1; // 0x1400107f8
__asm_stmxcsr(v1);
int32_t v2 = v1 & 0x8040;
int64_t v3 = 3072; // 0x140010819
if (v2 != 0x8000) {
int16_t v4 = v2; // 0x140010823
v3 = 2048;
if (v4 != 64) {
// 0x140010831
v3 = v4 == -0x7fc0 ? 1024 : 0;
}
}
int32_t v5 = v1 & 0x6000; // 0x14001084a
int64_t v6 = 512; // 0x1400107f8
switch (v5) {
case 0: {
// 0x140010878
v6 = 0;
}
case 0x4000: {
lab_0x14001087a:;
uint64_t v7 = (int64_t)v1; // 0x140010805
int64_t v8 = v7 / 8 & 48 | v7 / 64 & 8 | v7 / 256 & 4 | v7 / 1024 & 2 | v7 / 0x1000 & 1; // 0x1400108ca
int64_t v9 = v6 | v8; // 0x1400108cd
return v3 | 0x1000000 * v8 & 0x3f000000 | v9 | 0x400000 * v9 & 0xc0000000;
}
case 0x2000: {
// 0x140010871
v6 = 256;
// branch (via goto) -> 0x14001087a
goto lab_0x14001087a;
}
default: {
// 0x14001085d
v6 = v5 != 0x6000 ? 0 : 768;
// branch (via goto) -> 0x14001087a
goto lab_0x14001087a;
}
}
}
// Address range: 0x1400108ec - 0x14001093f
int64_t function_1400108ec(void) {
// 0x1400108ec
uint32_t v1; // 0x1400108ec
__asm_stmxcsr(v1);
int32_t v2 = 16 * v1;
int32_t v3 = v2 & 32 | 2 * v1 & 8 | v1 / 2 & 4 | v1 / 8 & 2 | v2 & 16 | v1 / 32 & 1; // 0x140010935
return 0x1000000 * v3 | v3;
}
// Address range: 0x140010940 - 0x140010a87
int64_t function_140010940(uint32_t a1) {
int64_t v1 = 0; // 0x140010940
switch (a1 & 3072) {
case 1024: {
// 0x1400109a2
v1 = 0x8040;
// break -> 0x1400109a8
break;
}
case 2048: {
// 0x14001099a
v1 = 64;
// break -> 0x1400109a8
break;
}
case 3072: {
// 0x140010992
v1 = 0x8000;
// break -> 0x1400109a8
break;
}
}
uint32_t v2 = a1 / 4 & 0xfc00000; // 0x14001095d
uint32_t v3 = (v2 | a1 & -0x40000000) / 0x400000; // 0x140010973
int32_t v4 = v3 & 768; // 0x1400109bb
int64_t v5 = 0x4000; // 0x140010940
switch (v4) {
case 0: {
// 0x1400109e1
v5 = 0;
goto lab_0x1400109e4;
}
case 256: {
// 0x1400109da
v5 = 0x2000;
goto lab_0x1400109e4;
}
case 512: {
goto lab_0x1400109e4;
}
default: {
// 0x1400109c8
v5 = 0x6000;
if (v4 != 768) {
// 0x1400109e1
v5 = 0;
goto lab_0x1400109e4;
} else {
goto lab_0x1400109e4;
}
}
}
lab_0x1400109e4:;
int64_t v6 = v3; // 0x140010973
int64_t v7 = (v6 & 2) != 0 ? 2048 : 0;
int64_t v8 = (v6 & 4) != 0 ? 1024 : 0;
int64_t v9 = (v6 & 8) != 0 ? 512 : 0;
int64_t v10 = (v6 & 32) != 0 ? 256 : 0;
int32_t v11; // 0x140010940
__asm_stmxcsr(v11);
int64_t result = v7 | (int64_t)(v2 / 0x80000 & 128 | v2 / 1024 & 0x1000) | v8 | v9 | v10 | v1 | v5; // 0x140010a76
__asm_ldmxcsr(v11 & -0xffc1 | (int32_t)result);
return result;
}
// Address range: 0x140010a88 - 0x140010b0b
int64_t function_140010a88(uint32_t a1) {
// 0x140010a88
int32_t v1; // 0x140010a88
__asm_stmxcsr(v1);
uint32_t v2 = a1 / 0x10000000; // 0x140010ad3
uint32_t result = a1 / 0x80000 & 32 | a1 / 0x200000 & 16 | a1 / 0x800000 & 8 | a1 / 0x2000000 & 4 | v2 & 1 | v2 & 2 | v1 & -64; // 0x140010afe
__asm_ldmxcsr(result);
return result;
}
// Address range: 0x140010b0c - 0x140010b77
int64_t function_140010b0c(int64_t a1) {
// 0x140010b0c
g62 = &g63;
int64_t * v1 = _calloc_base(0x1000, 1); // 0x140010b2b
int64_t * v2 = (int64_t *)(a1 + 8); // 0x140010b32
*v2 = (int64_t)v1;
_free_base(NULL);
int32_t * v3 = (int32_t *)(a1 + 20);
int32_t v4 = *v3;
int32_t v5; // 0x140010b0c
if (*v2 == 0) {
// 0x140010b49
*v3 = v4 | 1024;
*v2 = a1 + 28;
v5 = 2;
} else {
// 0x140010b42
*v3 = v4 | 64;
v5 = 0x1000;
}
// 0x140010b5e
*(int32_t *)(a1 + 32) = v5;
int64_t result = *v2; // 0x140010b61
*(int32_t *)(a1 + 16) = 0;
*(int64_t *)a1 = result;
return result;
}
// Address range: 0x140010b78 - 0x140010b8d
int64_t function_140010b78(int64_t a1, int64_t a2) {
// 0x140010b78
if ((char)a1 == 0) {
// 0x140010b8c
return 0;
}
int64_t v1 = 0; // 0x140010b7c
int64_t result = a2; // 0x140010b81
while (v1 != a2) {
// 0x140010b83
v1++;
result = v1;
if (*(char *)(v1 + a1) == 0) {
// break -> 0x140010b8c
break;
}
result = a2;
}
// 0x140010b8c
return result;
}
// Address range: 0x140010b90 - 0x140010bd9
int64_t function_140010b90(int64_t a1, int64_t a2, int64_t a3) {
int64_t v1 = a3; // 0x140010b99
int64_t v2 = a1; // 0x140010b99
if (a3 == 0) {
// 0x140010b9b
return 0;
}
int64_t v3 = a2; // 0x140010b99
unsigned char v4 = *(char *)v2; // 0x140010b9e
unsigned char v5 = *(char *)v3; // 0x140010ba2
int64_t v6 = v4;
int32_t v7 = v5;
int64_t v8 = v4 == 90 | (int32_t)v4 < 90 ? v6 + 32 : v6; // 0x140010bb3
uint32_t result = (int32_t)v8 - (v5 == 90 | v7 < 90 ? v7 + 32 : v7); // 0x140010bc9
while (v8 != 0 && result == 0) {
// 0x140010bd2
v1--;
v2++;
v3++;
if (v1 == 0) {
// break -> 0x140010b9b
break;
}
v4 = *(char *)v2;
v5 = *(char *)v3;
v6 = v4;
v7 = v5;
v8 = v4 == 90 | (int32_t)v4 < 90 ? v6 + 32 : v6;
result = (int32_t)v8 - (v5 == 90 | v7 < 90 ? v7 + 32 : v7);
}
// 0x140010b9b
return result;
}
// Address range: 0x140010c2c - 0x140010cd9
int64_t function_140010c2c(int64_t a1, int64_t a2, uint64_t a3, int64_t a4) {
// 0x140010c2c
if (a1 != 0 == (a2 != 0) != a3 < 0x80000000) {
// 0x140010c49
*_errno() = 22;
function_140006270(a1, a2, a3, a4);
// 0x140010cc9
return 0x7fffffff;
}
// 0x140010c6e
if (a3 == 0) {
// 0x140010cc9
return 0;
}
// 0x140010c77
int64_t v1; // bp-40, 0x140010c2c
function_14000331c(&v1, a4);
int64_t v2; // 0x140010c2c
int64_t v3 = *(int64_t *)(v2 + 272); // 0x140010c89
int64_t v4 = a3; // 0x140010c89
int64_t v5 = a1; // 0x140010c89
int64_t v6 = a2; // 0x140010c89
unsigned char v7 = *(char *)(v3 + (int64_t)*(char *)v5); // 0x140010c96
unsigned char v8 = *(char *)(v3 + (int64_t)*(char *)v6); // 0x140010ca1
uint32_t result = (int32_t)v7 - (int32_t)v8; // 0x140010ca8
while (v7 != 0 && result == 0) {
// 0x140010cb0
v4--;
v5++;
v6++;
if (v4 == 0) {
// break -> 0x140010cb6
break;
}
v7 = *(char *)(v3 + (int64_t)*(char *)v5);
v8 = *(char *)(v3 + (int64_t)*(char *)v6);
result = (int32_t)v7 - (int32_t)v8;
}
// 0x140010cb6
char v9; // 0x140010c2c
if (v9 != 0) {
int32_t * v10 = (int32_t *)(v1 + 936); // 0x140010cc2
*v10 = *v10 & -3;
}
// 0x140010cc9
return result;
}
// Address range: 0x140010cdc - 0x140011039
int64_t function_140010cdc(int64_t a1, int64_t a2, int64_t a3, int64_t a4, int32_t a5, int64_t a6, int32_t a7, int32_t a8) {
int64_t v1 = a5; // 0x140010d03
int64_t v2; // 0x140010cdc
int64_t v3; // 0x140010cdc
if (a5 < 1) {
// 0x140010d36
v3 = a1;
v2 = v1;
if (a5 < -1) {
// 0x14001101c
return function_140011ed0(g29);
}
} else {
int64_t v4 = function_140010b78(a4, v1); // 0x140010d2c
v3 = a4;
v2 = v4;
}
int64_t v5 = a7; // 0x140010d3f
int64_t v6; // 0x140010cdc
int64_t v7; // 0x140010cdc
if (a7 < 1) {
// 0x140010d5a
v6 = v3;
v7 = v5;
if (a7 < -1) {
// 0x14001101c
return function_140011ed0(g29);
}
} else {
int64_t v8 = function_140010b78(a6, v5); // 0x140010d50
v6 = a6;
v7 = v8;
}
int32_t CodePage = a8; // 0x140010d6d
if (a8 == 0) {
// 0x140010d6f
CodePage = *(int32_t *)(v6 + 12);
}
int32_t v9 = v2; // 0x140010d76
int32_t v10 = v7;
if (v9 != 0 != v10 != 0) {
int32_t lpCPInfo; // bp-104, 0x140010cdc
if (v9 > 1 || v10 == v9 || v10 > 1 || !GetCPInfo(CodePage, (struct _cpinfo *)&lpCPInfo)) {
// 0x14001101c
return function_140011ed0(g29);
}
char v11; // bp-98, 0x140010cdc
if (v9 >= 1) {
// 0x140010db1
if (lpCPInfo < 2 || v11 == 0) {
// 0x14001101c
return function_140011ed0(g29);
}
unsigned char v12 = (char)a4;
int64_t v13 = &v11; // 0x140010dd7
unsigned char v14 = *(char *)(v13 + 1); // 0x140010dc1
while (v14 != 0) {
// 0x140010dc7
if (!((v14 < v12 | *(char *)v13 > v12))) {
// break -> 0x14001101c
break;
}
// 0x140010dd7
v13 += 2;
if (*(char *)v13 == 0) {
// break -> 0x14001101c
break;
}
v14 = *(char *)(v13 + 1);
}
// 0x14001101c
return function_140011ed0(g29);
}
if (v10 >= 1) {
// 0x140010dee
if (lpCPInfo < 2 || v11 == 0) {
// 0x14001101c
return function_140011ed0(g29);
}
int64_t v15 = &v11; // 0x140010e15
unsigned char v16 = *(char *)(v15 + 1); // 0x140010dfe
while (v16 != 0) {
unsigned char v17 = *(char *)a6; // 0x140010e04
if (!((v16 < v17 | v17 < *(char *)v15))) {
// break -> 0x14001101c
break;
}
// 0x140010e15
v15 += 2;
if (*(char *)v15 == 0) {
// break -> 0x14001101c
break;
}
v16 = *(char *)(v15 + 1);
}
// 0x14001101c
return function_140011ed0(g29);
}
}
int64_t v18 = function_14000a420(CodePage, 9); // 0x140010e40
if ((int32_t)v18 == 0) {
// 0x14001101c
return function_140011ed0(g29);
}
int64_t v19 = 0x100000000 * v18;
int64_t v20 = v19 / 0x80000000; // 0x140010e5d
int64_t v21 = v20 + 16; // 0x140010e60
uint64_t v22 = v20 - (v20 | (int64_t)(v20 < 0xfffffffffffffff0)) & v21; // 0x140010e6a
if (v22 == 0) {
// 0x14001101c
return function_140011ed0(g29);
}
// 0x140010e6f
int64_t v23; // bp-200, 0x140010cdc
int64_t v24 = &v23; // 0x140010ce9
int64_t v25; // 0x140010cdc
int64_t v26; // 0x140010cdc
int64_t v27; // 0x140010cdc
int64_t v28; // 0x140010cdc
if (v22 < 1025) {
int64_t v29 = v24 - __chkstk(v22, v21, 0xffffffffffffff0); // 0x140010e8d
int64_t v30 = v29 + 80; // 0x140010e90
if (v30 == 0) {
// 0x14001101c
return function_140011ed0(g29);
}
// 0x140010e9e
*(int32_t *)v30 = 0xcccc;
v27 = v29;
v25 = v30;
goto lab_0x140010eb9;
} else {
int64_t * v31 = _malloc_base((int32_t)v22); // 0x140010ea6
int64_t v32 = (int64_t)v31; // 0x140010ea6
v28 = v24;
v26 = v32;
if (v31 == NULL) {
goto lab_0x140010ec1;
} else {
// 0x140010eb3
*(int32_t *)v31 = 0xdddd;
v27 = v24;
v25 = v32;
goto lab_0x140010eb9;
}
}
lab_0x140010eb9:
// 0x140010eb9
v28 = v27;
v26 = v25 + 16;
goto lab_0x140010ec1;
lab_0x140010ec1:
// 0x140010ec1
if (v26 == 0) {
// 0x14001101c
return function_140011ed0(g29);
}
int32_t * v33 = (int32_t *)(v28 + 40); // 0x140010eca
*v33 = (int32_t)(v19 / 0x100000000);
int64_t * v34 = (int64_t *)(v28 + 32); // 0x140010ed5
*v34 = v26;
int64_t v35; // 0x140010cdc
int64_t v36; // 0x140010cdc
if ((int32_t)function_14000a420(CodePage, 1) == 0) {
goto lab_0x140010ffe;
} else {
// 0x140010eef
*v33 = 0;
*v34 = 0;
int64_t v37 = function_14000a420(CodePage, 9); // 0x140010f08
if ((int32_t)v37 == 0) {
goto lab_0x140010ffe;
} else {
int64_t v38 = 0x100000000 * v37 / 0x80000000; // 0x140010f1b
int64_t v39 = v38 + 16; // 0x140010f1e
uint64_t v40 = v38 - (v38 | (int64_t)(v38 < 0xfffffffffffffff0)) & v39; // 0x140010f28
if (v40 == 0) {
goto lab_0x140010ffe;
} else {
if (v40 < 1025) {
int64_t v41 = v28 - __chkstk(v39, v40, a6) + 80; // 0x140010f55
if (v41 == 0) {
goto lab_0x140010ffe;
} else {
// 0x140010f5f
*(int32_t *)v41 = 0xcccc;
v35 = v41;
goto lab_0x140010f7d;
}
} else {
int64_t * v42 = _malloc_base((int32_t)v40); // 0x140010f6a
int64_t v43 = (int64_t)v42; // 0x140010f6a
v36 = v43;
if (v42 == NULL) {
goto lab_0x140010f85;
} else {
// 0x140010f77
*(int32_t *)v42 = 0xdddd;
v35 = v43;
goto lab_0x140010f7d;
}
}
}
}
}
lab_0x140010ffe:;
int64_t v44 = v26 - 16; // 0x140010ffe
if (*(int32_t *)v44 == 0xdddd) {
// 0x14001100a
_free_base((int64_t *)v44);
}
// 0x14001101c
return function_140011ed0(g29);
lab_0x140010f85:
// 0x140010f85
if (v36 != 0) {
// 0x140010f8a
int64_t v45; // 0x140010cdc
int64_t v46 = v45;
int32_t * v47 = (int32_t *)(v46 + 40); // 0x140010f8a
int32_t v48; // 0x140010cdc
*v47 = v48;
int64_t * v49 = (int64_t *)(v46 + 32); // 0x140010f95
int64_t v50; // 0x140010cdc
*v49 = v50;
int32_t v51; // 0x140010cdc
if ((int32_t)function_14000a420(v51, 1) != 0) {
// 0x140010fab
*(int64_t *)(v46 + 64) = 0;
*(int64_t *)(v46 + 56) = 0;
*(int64_t *)(v46 + 48) = 0;
*v47 = v48;
*v49 = v50;
int64_t v52; // 0x140010cdc
int64_t v53; // 0x140010e45
__acrt_CompareStringEx(a2, a3 & 0xffffffff, v52, v53 & 0xffffffff);
}
int64_t v54 = v50 - 16; // 0x140010fe4
int32_t v55 = *(int32_t *)v54; // 0x140010fe8
if (v55 == 0xdddd) {
// 0x140010ff0
_free_base((int64_t *)v54);
}
}
goto lab_0x140010ffe;
lab_0x140010f7d:
// 0x140010f7d
v36 = v35 + 16;
goto lab_0x140010f85;
}
// Address range: 0x1400110c8 - 0x14001111a
int64_t function_1400110c8(void) {
int64_t v1 = g44; // 0x1400110db
if (g44 == -2) {
// 0x1400110dd
v1 = (int64_t)CreateFileW(L"CONOUT$", 0x40000000, 3, NULL, 3, 0, NULL);
g44 = v1;
}
// 0x14001110b
return v1 != -1;
}
// Address range: 0x14001111c - 0x140011138
int64_t function_14001111c(void) {
uint64_t hObject = g44; // 0x140011120
int64_t handleClosed; // 0x14001111c
if (hObject < 0xfffffffffffffffe) {
// 0x14001112d
handleClosed = CloseHandle((int64_t *)hObject);
}
// 0x140011133
return handleClosed;
}
// Address range: 0x140011138 - 0x1400111f6
int64_t function_140011138(int16_t * lpBuffer, int64_t a2, int64_t * lpNumberOfCharsWritten) {
int32_t nNumberOfCharsToWrite = a2; // 0x140011159
bool v1 = WriteConsoleW((int64_t *)g44, (int64_t *)lpBuffer, nNumberOfCharsToWrite, (int32_t *)lpNumberOfCharsWritten, NULL); // 0x140011169
if (v1 || GetLastError() != 6) {
// 0x1400111df
return v1 ? 0xffffffff : 0;
}
uint64_t hObject = g44; // 0x140011180
if (hObject < 0xfffffffffffffffe) {
// 0x14001118d
CloseHandle((int64_t *)hObject);
}
int64_t * hConsoleOutput = CreateFileW(L"CONOUT$", 0x40000000, 3, NULL, 3, 0, NULL); // 0x1400111b8
g44 = (int64_t)hConsoleOutput;
// 0x1400111df
return WriteConsoleW(hConsoleOutput, (int64_t *)lpBuffer, nNumberOfCharsToWrite, (int32_t *)lpNumberOfCharsWritten, NULL) ? 0xffffffff : 0;
}
// Address range: 0x1400111f8 - 0x140011266
int64_t function_1400111f8(void) {
uint64_t v1 = function_1400118e0(); // 0x1400111fe
function_1400118fa();
int64_t result = 0; // 0x140011210
if ((v1 & 63) != 0) {
int64_t v2 = v1 & 0xffffffff; // 0x140011203
result = v1 / 8 & 2 | v1 / 2 & 4 | v1 / 32 & 1 | 0x40000 * v1 & 0x80000 | 16 * v2 & 16 | 2 * v2 & 8;
}
// 0x14001125d
return result;
}
// Address range: 0x140011268 - 0x14001152e
int64_t function_140011268(int32_t a1, int32_t a2) {
uint64_t v1 = function_1400118e0(); // 0x140011290
int64_t v2 = v1 / 64 & 8 | v1 / 8 & 16 | v1 / 256 & 4 | v1 / 1024 & 2 | v1 / 0x1000 & 1 | 2048 * v1 & 0x80000; // 0x1400112fe
int32_t v3 = v1; // 0x140011301
int32_t v4 = v3 & 0x6000; // 0x14001130a
int64_t v5 = v2; // 0x140011268
int64_t v6; // 0x140011268
switch (v4) {
case 0x2000: {
// 0x14001132f
v5 = v2 & 0xfffffeff | 256;
}
case 0: {
lab_0x140011331:;
int32_t v7 = v3 & 0x8040; // 0x140011331
if (v7 == 64) {
// 0x14001135b
v6 = v5 & 0xfdffffff | 0x2000000;
} else {
int32_t v8 = v7 - 0x8000; // 0x14001133e
if (v8 == 0) {
// 0x140011353
v6 = v5 & 0xfcffffff | 0x3000000;
} else {
// 0x140011347
v6 = v5;
if (v8 == 64) {
// 0x14001134d
v6 = v5 & 0xfeffffff | 0x1000000;
}
}
}
// break -> 0x14001135f
break;
}
case 0x4000: {
// 0x14001132a
v5 = v2 & 0xfffffdff | 512;
// branch (via goto) -> 0x140011331
goto lab_0x140011331;
}
default: {
// 0x14001131d
v5 = v2;
if (v4 == 0x6000) {
// 0x140011322
v5 = v2 & 0xfffffcff | 768;
}
// branch (via goto) -> 0x140011331
goto lab_0x140011331;
}
}
int32_t v9 = a2 & 0x308031f;
uint64_t v10 = v6 & (int64_t)(-1 - v9) | (int64_t)(v9 & a1); // 0x14001136b
int32_t v11 = v10; // 0x14001136e
if (v11 == (int32_t)v6) {
// 0x140011517
return v6 & 0xffffffff;
}
int64_t v12 = 8 * v10 & 128 | 64 * v10 & 512 | 256 * v10 & 1024 | 1024 * v10 & 2048 | 0x1000 * v10 & 0x1000 | v10 / 2048 & 256; // 0x1400113c1
int32_t v13 = v11 & 768; // 0x1400113c7
int64_t v14 = v12; // 0x140011268
int64_t v15; // 0x140011268
switch (v13) {
case 256: {
// 0x1400113ed
v14 = v12 & 0xffffdfff | 0x2000;
}
case 0: {
lab_0x1400113f5:;
int64_t v16 = v10 & 0x3000000; // 0x1400113f5
if (v16 == 0x1000000) {
// 0x140011422
v15 = v14 & 0xffff7fbf | 0x8040;
} else {
int32_t v17 = v16; // 0x140011405
if (v17 == 0x2000000) {
// 0x14001141d
v15 = v14 & 0xffffffbf | 64;
} else {
// 0x14001140e
v15 = v14;
if (v17 == 0x3000000) {
// 0x140011417
v15 = v14 & 0xffff7fff | 0x8000;
}
}
}
// break -> 0x14001142c
break;
}
case 512: {
// 0x1400113e7
v14 = v12 & 0xffffbfff | 0x4000;
// branch (via goto) -> 0x1400113f5
goto lab_0x1400113f5;
}
default: {
// 0x1400113d7
v14 = v12;
if (v13 == 768) {
// 0x1400113e2
v14 = v12 & 0xffff9fff | 0x6000;
}
// branch (via goto) -> 0x1400113f5
goto lab_0x1400113f5;
}
}
// 0x14001142c
int64_t v18; // 0x140011268
if (g45 == 0 || (v15 & 64) == 0) {
int64_t v19 = v15 & 0xffffffbf; // 0x14001146b
function_1400118f0(v19);
v18 = v19;
} else {
// 0x14001143a
function_1400118f0(v15 & 0xffffffff);
v18 = v15;
}
uint64_t v20 = v18;
int64_t v21 = v20 / 64 & 8 | v20 / 8 & 16 | v20 / 256 & 4 | v20 / 1024 & 2 | v20 / 0x1000 & 1 | 2048 * v20 & 0x80000; // 0x1400114c1
int64_t v22 = v20 & 0x6000;
int64_t v23 = v21; // 0x1400114c9
if (v22 != 0) {
int32_t v24 = v22; // 0x1400114cb
switch (v24) {
case 0x2000: {
// 0x1400114eb
v23 = v21 & 0xfffffeff | 256;
// break -> 0x1400114ed
break;
}
case 0x4000: {
// 0x1400114e6
v23 = v21 & 0xfffffdff | 512;
// break -> 0x1400114ed
break;
}
default: {
// 0x1400114d9
v23 = v21;
if (v24 == 0x6000) {
// 0x1400114de
v23 = v21 & 0xfffffcff | 768;
}
// break -> 0x1400114ed
break;
}
}
}
int32_t v25 = (int32_t)v20 & 0x8040; // 0x1400114ed
if (v25 == 64) {
// 0x140011517
return (v23 & 0xfdffffff | 0x2000000) & 0xffffffff;
}
int32_t v26 = v25 - 0x8000; // 0x1400114f8
if (v26 == 0) {
// 0x140011517
return (v23 & 0xfcffffff | 0x3000000) & 0xffffffff;
}
int64_t v27 = v23; // 0x140011503
if (v26 == 64) {
// 0x140011505
v27 = v23 & 0xfeffffff | 0x1000000;
}
// 0x140011517
return v27 & 0xffffffff;
}
// Address range: 0x140011530 - 0x140011595
int64_t function_140011530(int64_t a1) {
// 0x140011530
int64_t v1; // 0x140011530
int128_t v2 = __asm_movsd(v1); // 0x140011538
int64_t v3; // 0x140011530
int128_t v4 = __asm_movsd(v3); // 0x140011543
int64_t v5 = 0x100000000 * a1 / 0x100000000; // bp-56, 0x140011551
__asm_movsd_8(v2);
int64_t v6 = __asm_movsd_8(v4); // 0x140011561
int128_t v7; // 0x140011530
__asm_movsd_8(v7);
int64_t v8; // 0x140011530
function_140011cb8(v8, 0xffc0);
int64_t v9 = __acrt_invoke_user_matherr((int32_t *)&v5); // 0x140011579
int64_t result = v9; // 0x140011580
if ((int32_t)v9 == 0) {
// 0x140011582
result = _set_errno_from_matherr(a1 & 0xffffffff);
}
// 0x140011589
__asm_movsd(v6);
return result;
}
// Address range: 0x140011598 - 0x140011652
int64_t function_140011598(int64_t a1, int64_t a2) {
int64_t v1; // 0x140011598
if ((a1 & 8) == 0) {
goto lab_0x1400115ca;
} else {
if ((char)a2 >= 0) {
goto lab_0x1400115ca;
} else {
// 0x1400115bb
function_140011d34(1);
v1 = a1 & 23;
goto lab_0x140011621;
}
}
lab_0x1400115ca:
if ((a1 & 4) == 0) {
goto lab_0x1400115e5;
} else {
if ((a2 & 512) == 0) {
goto lab_0x1400115e5;
} else {
// 0x1400115db
function_140011d34(4);
v1 = a1 & 27;
goto lab_0x140011621;
}
}
lab_0x1400115e5:
if ((a1 & 1) == 0) {
goto lab_0x140011601;
} else {
if ((a2 & 1024) == 0) {
goto lab_0x140011601;
} else {
// 0x1400115f2
function_140011d34(8);
v1 = a1 & 30;
goto lab_0x140011621;
}
}
lab_0x140011601:;
int64_t v2 = a1 & 31; // 0x1400115ac
v1 = v2;
if ((a1 & 2) != 0) {
// 0x140011607
v1 = v2;
if ((a2 & 2048) != 0) {
if ((a1 & 16) != 0) {
// 0x140011614
function_140011d34(16);
}
// 0x14001161e
v1 = a1 & 29;
}
}
goto lab_0x140011621;
lab_0x140011621:
// 0x140011621
if ((a1 & 16) == 0) {
// 0x14001163b
return (int32_t)v1 == 0;
}
int64_t v3 = v1; // 0x14001162c
if ((a2 & 0x1000) != 0) {
// 0x14001162e
function_140011d34(32);
v3 = v1 & 15;
}
// 0x14001163b
return (int32_t)v3 == 0;
}
// Address range: 0x140011654 - 0x14001177b
int64_t function_140011654(int64_t a1, int64_t a2, int64_t a3, int64_t a4, int64_t a5, int64_t a6, int64_t a7, int64_t a8, int64_t a9) {
int64_t v1 = a7;
int128_t v2; // 0x140011654
int64_t v3 = __asm_movaps(v2); // 0x140011668
int64_t v4 = function_140011cb8(0x1f80, 0xffc0);
int64_t v5 = v4; // bp-216, 0x140011697
int64_t v6 = __asm_movsd_8(__asm_movsd(a3)); // bp-208, 0x1400116ac
int64_t v7 = function_140011598(a5 & 0xffffffff, v4); // 0x1400116b2
int128_t v8 = __asm_movsd(a8); // 0x1400116b7
if ((int32_t)v7 == 0) {
if ((int32_t)a9 == 2) {
// 0x1400116c6
__asm_movsd_8(v8);
}
// 0x1400116d7
int64_t v9; // bp-184, 0x140011654
function_140011930(&v9, &v5, (int32_t)a5, a2 & 0xffffffff, &v1, &v6);
}
int64_t v10 = a4 & 0xffffffff; // 0x140011689
if ((int32_t)a4 == 0 | (char)__acrt_has_user_matherr() == 0) {
// 0x14001173d
_set_errno_from_matherr(v10);
function_140011cb8(v5, 0xffc0);
__asm_movsd(v6);
} else {
int128_t v11 = __asm_movsd(v6); // 0x140011715
__asm_movsd(v1);
__asm_movsd_8(v11);
__asm_movsd_8(v8);
function_140011530(v10);
}
int64_t result = function_140011ed0(g29); // 0x140011760
__asm_movaps_12((int128_t)v3);
return result;
}
// Address range: 0x14001177c - 0x140011795
int128_t function_14001177c(int64_t a1) {
// 0x14001177c
return __asm_movsd(a1 | 0x8000000000000);
}
// Address range: 0x140011830 - 0x1400118c6
int64_t function_140011830(void) {
// 0x140011830
int128_t v1; // 0x140011830
int64_t v2 = __asm_movaps(v1); // 0x140011837
int128_t v3; // 0x140011830
int128_t v4 = __asm_movaps_12(v3); // 0x14001183b
int128_t v5; // 0x140011830
int128_t v6 = __asm_movaps_12(v5); // 0x140011841
int64_t v7; // 0x140011830
uint32_t v8 = (int32_t)v7 - 1; // 0x140011844
int64_t v9; // 0x140011830
if (v8 == 0) {
// 0x140011874
__asm_movsd_8(__asm_xorps(v5, v5));
__asm_movsd_8(v6);
v9 = 2;
} else {
// 0x14001184a
if (v8 != 1) {
// 0x1400118b9
__asm_movaps_12(v4);
__asm_movaps_12((int128_t)v2);
int64_t v10; // 0x140011830
return &v10;
}
// 0x140011850
int128_t v11; // 0x140011830
__asm_movsd_8(__asm_xorps(v11, v11));
__asm_movsd_8(v5);
v9 = v8;
}
int64_t v12 = __asm_movsd_8(v4); // 0x1400118a9
int64_t v13; // 0x140011830
int64_t v14; // 0x140011830
int64_t result = function_140011654(v14, v13 & 0xffffffff, v12, v9, (int64_t)&g113, (int64_t)&g113, (int64_t)&g113, (int64_t)&g113, (int64_t)&g113); // 0x1400118b4
// 0x1400118b9
__asm_movaps_12(v4);
__asm_movaps_12((int128_t)v2);
return result;
}
// Address range: 0x1400118e0 - 0x1400118f0
int64_t function_1400118e0(void) {
// 0x1400118e0
uint32_t result; // 0x1400118e0
__asm_stmxcsr(result);
return result;
}
// Address range: 0x1400118f0 - 0x1400118fa
int64_t function_1400118f0(int64_t a1) {
// 0x1400118f0
__asm_ldmxcsr((int32_t)a1);
int64_t result; // 0x1400118f0
return result;
}
// Address range: 0x1400118fa - 0x14001190e
int64_t function_1400118fa(void) {
// 0x1400118fa
int32_t v1; // 0x1400118fa
__asm_stmxcsr(v1);
__asm_ldmxcsr(v1 & -64);
int64_t result; // 0x1400118fa
return result;
}
// Address range: 0x140011930 - 0x140011957
int64_t function_140011930(int64_t * a1, int64_t * a2, int32_t a3, int64_t a4, int64_t * a5, int64_t * a6) {
// 0x140011930
int64_t v1; // 0x140011930
int64_t v2; // 0x140011930
return function_140011958((int64_t)a1, (int64_t)a2, (int64_t)a3, a4, v1, v2, 0);
}
// Address range: 0x140011958 - 0x140011c65
int64_t function_140011958(int64_t a1, int64_t a2, int64_t a3, int64_t a4, int64_t a5, int64_t a6, int32_t a7) {
int64_t lpArguments = a1; // 0x140011967
int64_t v1 = 0; // 0x140011979
*(int32_t *)(a1 + 4) = 0;
*(int32_t *)(lpArguments + 8) = 0;
*(int32_t *)(lpArguments + 12) = 0;
int32_t v2 = -0x3ffffff3; // 0x140011995
if ((a3 & 16) != 0) {
int32_t * v3 = (int32_t *)(lpArguments + 4); // 0x1400119a0
*v3 = *v3 | 1;
v2 = -0x3fffff71;
}
int32_t v4 = v2; // 0x1400119a8
if ((a3 & 2) != 0) {
int32_t * v5 = (int32_t *)(lpArguments + 4); // 0x1400119b3
*v5 = *v5 | 2;
v4 = -0x3fffff6d;
}
int32_t v6 = v4; // 0x1400119bb
if ((a3 & 1) != 0) {
int32_t * v7 = (int32_t *)(lpArguments + 4); // 0x1400119c6
*v7 = *v7 | 4;
v6 = -0x3fffff6f;
}
int32_t v8 = v6; // 0x1400119ce
if ((a3 & 4) != 0) {
int32_t * v9 = (int32_t *)(lpArguments + 4); // 0x1400119d9
*v9 = *v9 | 8;
v8 = -0x3fffff72;
}
int32_t dwExceptionCode = v8; // 0x1400119e1
if ((a3 & 8) != 0) {
int32_t * v10 = (int32_t *)(lpArguments + 4); // 0x1400119ec
*v10 = *v10 | 16;
dwExceptionCode = -0x3fffff70;
}
int32_t * v11 = (int32_t *)(lpArguments + 8); // 0x140011a00
*v11 = ((int32_t)(v1 / 8) & 16 | *v11 & -17) ^ 16;
int32_t * v12 = (int32_t *)(lpArguments + 8); // 0x140011a19
*v12 = ((int32_t)(v1 / 64) & 8 | *v12 & -9) ^ 8;
int32_t * v13 = (int32_t *)(lpArguments + 8); // 0x140011a32
*v13 = ((int32_t)(v1 / 256) & 4 | *v13 & -5) ^ 4;
int32_t * v14 = (int32_t *)(lpArguments + 8); // 0x140011a4a
*v14 = ((int32_t)(v1 / 1024) & 2 | *v14 & -3) ^ 2;
int32_t * v15 = (int32_t *)(lpArguments + 8); // 0x140011a5f
*v15 = (*v15 & -2 | *(int32_t *)&v1 / 0x1000 & 1) ^ 1;
int64_t v16 = function_140011d54(lpArguments, (int32_t)v1); // 0x140011a68
v1 = v16;
v1 = v16;
if ((v16 & 1) != 0) {
int32_t * v17 = (int32_t *)(lpArguments + 12); // 0x140011a78
*v17 = *v17 | 16;
}
int64_t v18 = v1;
v1 = v18;
if ((v18 & 4) != 0) {
int32_t * v19 = (int32_t *)(lpArguments + 12); // 0x140011a85
*v19 = *v19 | 8;
}
int64_t v20 = v1;
v1 = v20;
if ((v20 & 8) != 0) {
int32_t * v21 = (int32_t *)(lpArguments + 12); // 0x140011a92
*v21 = *v21 | 4;
}
int64_t v22 = v1;
v1 = v22;
if ((v22 & 16) != 0) {
int32_t * v23 = (int32_t *)(lpArguments + 12); // 0x140011a9f
*v23 = *v23 | 2;
}
int32_t v24 = v1; // 0x140011aa6
if ((v1 & 32) != 0) {
int32_t * v25 = (int32_t *)(lpArguments + 12); // 0x140011aac
*v25 = *v25 | 1;
v24 = *(int32_t *)&v1;
}
int64_t v26 = 0x6000; // 0x140011ab2
int32_t v27 = v24 & 0x6000;
switch (v27) {
case 0: {
// 0x140011afa
*(int32_t *)lpArguments = 0x6000;
// break -> 0x140011b01
break;
}
case 0x2000: {
// 0x140011aea
*(int32_t *)lpArguments = 0x6000;
*(int32_t *)lpArguments = *(int32_t *)&v26 | 1;
// break -> 0x140011b01
break;
}
case 0x4000: {
// 0x140011ada
*(int32_t *)lpArguments = 0x6000;
*(int32_t *)lpArguments = *(int32_t *)&v26 | 2;
// break -> 0x140011b01
break;
}
default: {
if (v27 != 0x6000) {
// branch -> 0x140011b01
} else {
// 0x140011ad1
*(int32_t *)lpArguments = 0x6003;
}
// break -> 0x140011b01
break;
}
}
int32_t * v28 = (int32_t *)&v26;
*(int32_t *)lpArguments = *v28 & -0x1ffe1;
*(int32_t *)lpArguments = *v28 | 32 * (int32_t)a4 & 0x1ffe0;
int32_t * v29 = (int32_t *)(lpArguments + 32); // 0x140011b22
*v29 = *v29 | 1;
if (a7 == 0) {
int32_t * v30 = (int32_t *)(lpArguments + 32); // 0x140011b69
*v30 = *v30 & -31 | 2;
int64_t v31 = *(int64_t *)a5; // 0x140011b79
v26 = v31;
*(int64_t *)(lpArguments + 16) = v31;
int32_t * v32 = (int32_t *)(lpArguments + 96); // 0x140011b88
*v32 = *v32 | 1;
int32_t * v33 = (int32_t *)(lpArguments + 96); // 0x140011b90
*v33 = *v33 & -31 | 2;
int64_t v34 = *(int64_t *)a6; // 0x140011ba0
v1 = v34;
*(int64_t *)(lpArguments + 80) = v34;
} else {
// 0x140011b2c
v1 = 0xffffffe1;
int32_t * v35 = (int32_t *)(lpArguments + 32); // 0x140011b35
*v35 = *v35 & -31;
*(int32_t *)(lpArguments + 16) = *(int32_t *)a5;
int32_t * v36 = (int32_t *)(lpArguments + 96); // 0x140011b49
*v36 = *v36 | 1;
int32_t * v37 = (int32_t *)(lpArguments + 96); // 0x140011b51
*v37 = *v37 & -31;
uint32_t v38 = *(int32_t *)a6; // 0x140011b58
v26 = v38;
*(int32_t *)(lpArguments + 80) = v38;
}
// 0x140011ba7
function_140011c98(v26, v1);
v1 = 0;
RaiseException(dwExceptionCode, 0, 1, (int32_t *)&lpArguments);
v26 = lpArguments;
int32_t v39 = *(int32_t *)(lpArguments + 8); // 0x140011bc2
int64_t v40 = lpArguments; // 0x140011bc7
int32_t v41 = v39; // 0x140011bc7
if ((v39 & 16) != 0) {
// 0x140011bc9
*(int64_t *)a2 = v1 & -129;
v40 = v26;
v41 = *(int32_t *)(v40 + 8);
}
int64_t v42 = v41;
int64_t v43 = v40; // 0x140011bd3
int64_t v44 = v42; // 0x140011bd3
if ((v42 & 8) != 0) {
// 0x140011bd5
*(int64_t *)a2 = v1 & -513;
v43 = v26;
v44 = (int64_t)*(int32_t *)(v43 + 8);
}
int64_t v45 = v43; // 0x140011bdf
int64_t v46 = v44; // 0x140011bdf
if ((v44 & 4) != 0) {
// 0x140011be1
*(int64_t *)a2 = v1 & -1025;
v45 = v26;
v46 = (int64_t)*(int32_t *)(v45 + 8);
}
int64_t v47 = v45; // 0x140011beb
int64_t v48 = v46; // 0x140011beb
if ((v46 & 2) != 0) {
// 0x140011bed
*(int64_t *)a2 = v1 & -2049;
v47 = v26;
v48 = (int64_t)*(int32_t *)(v47 + 8);
}
int32_t v49 = v47; // 0x140011bf7
if ((v48 & 1) != 0) {
// 0x140011bf9
*(int64_t *)a2 = v1 & -0x1001;
v49 = *v28;
}
int32_t v50 = v49 & 3; // 0x140011c00
switch (v50) {
case 0: {
// 0x140011c35
*(int64_t *)a2 = v1 & -0x6001;
// break -> 0x140011c3c
break;
}
case 1: {
int64_t * v51 = (int64_t *)a2; // 0x140011c29
*v51 = v1 & -0x4001;
*v51 = v1 | 0x2000;
// break -> 0x140011c3c
break;
}
default: {
// 0x140011c0a
if (v50 == 2) {
int64_t * v52 = (int64_t *)a2; // 0x140011c1d
*v52 = v1 & -0x2001;
*v52 = v1 | 0x4000;
} else {
// 0x140011c14
*(int64_t *)a2 = v1 | 0x6000;
}
// break -> 0x140011c3c
break;
}
}
int64_t v53 = v26 + 80;
int64_t result; // 0x140011958
if (a7 == 0) {
int64_t v54 = *(int64_t *)v53; // 0x140011c49
*(int64_t *)a6 = v54;
result = v54;
} else {
uint32_t v55 = *(int32_t *)v53; // 0x140011c42
*(int32_t *)a6 = v55;
result = v55;
}
// 0x140011c50
return result;
}
// Address range: 0x140011c98 - 0x140011cb5
int64_t function_140011c98(int64_t a1, int64_t a2) {
int64_t v1 = function_1400118e0(); // 0x140011c9e
function_1400118fa();
return v1 & 63;
}
// Address range: 0x140011cb8 - 0x140011d34
int64_t function_140011cb8(int64_t a1, int64_t a2) {
int64_t v1 = function_1400118e0(); // 0x140011ccd
int64_t v2 = v1 & ((a2 | 0xffff807f) ^ 0x7f80) | a2 & a1; // 0x140011ce6
if (g46 == 0 || (v2 & 64) == 0) {
// 0x140011d1a
function_1400118f0(v2 & 0xffffffbf);
} else {
// 0x140011cfa
function_1400118f0(v2 & 0xffffffff);
}
// 0x140011d22
return v1 & 0xffffffff;
}
// Address range: 0x140011d34 - 0x140011d53
int64_t function_140011d34(int64_t a1) {
// 0x140011d34
return function_1400118f0(function_1400118e0() & 0xffffffff | a1 & 63);
}
// Address range: 0x140011d54 - 0x140011d65
int64_t function_140011d54(int64_t a1, int32_t a2) {
// 0x140011d54
return function_1400118e0() & 63;
}
// Address range: 0x140011dc0 - 0x140011e0d
int64_t function_140011dc0(int64_t * a1) {
int64_t result = function_140011e10(0x140000000); // 0x140011dd7
if ((int32_t)result == 0) {
// 0x140011e02
return result;
}
int64_t v1 = _FindPESection(0x140000000, (int64_t)a1 - 0x140000000); // 0x140011de9
int64_t result2 = 0; // 0x140011df1
if (v1 != 0) {
// 0x140011df3
result2 = (int64_t)(*(int32_t *)(v1 + 36) >> 31 ^ 1);
}
// 0x140011e02
return result2;
}
// Address range: 0x140011e10 - 0x140011e3b
int64_t function_140011e10(int64_t a1) {
if ((int16_t)a1 != 0x5a4d) {
// 0x140011e38
return 0;
}
int64_t v1 = (int64_t)*(int32_t *)(a1 + 60) + a1; // 0x140011e1e
if (*(int32_t *)v1 != 0x4550) {
// 0x140011e38
return 0;
}
// 0x140011e29
return *(int16_t *)(v1 + 24) == 523;
}
// Address range: 0x140011e3c - 0x140011e59
int64_t function_140011e3c(void) {
// 0x140011e3c
int64_t v1; // 0x140011e3c
int64_t v2; // 0x140011e3c
function_140011e5c(v2, v1, *(int64_t *)(v1 + 56));
return 1;
}
// Address range: 0x140011e5c - 0x140011eb7
int64_t function_140011e5c(int64_t a1, int64_t a2, int64_t a3) {
int64_t v1 = a1; // 0x140011e72
if ((a3 & 4) != 0) {
int32_t v2 = *(int32_t *)(a3 + 4); // 0x140011e78
v1 = (int64_t)v2 + a1 & (int64_t)-*(int32_t *)(a3 + 8);
}
int64_t v3 = *(int64_t *)(v1 + (0x100000000 * a3 / 0x100000000 & -8)); // 0x140011e8a
uint32_t v4 = *(int32_t *)(*(int64_t *)(a2 + 16) + 8); // 0x140011e92
char v5 = *(char *)((int64_t)v4 + 3 + *(int64_t *)(a2 + 8)); // 0x140011e99
int64_t v6 = a1; // 0x140011e9e
if ((v5 & 15) != 0) {
// 0x140011ea0
v6 = (int64_t)(v5 & -16) + a1;
}
// 0x140011eab
return function_140011ed0(v6 ^ v3);
}
// Address range: 0x140011ed0 - 0x140011eee
int64_t function_140011ed0(uint64_t a1) {
// 0x140011ed0
if (a1 < 0x1000000000000 == g29 == a1) {
// 0x140011ee4
int64_t result; // 0x140011ed0
return result;
}
// 0x140011ee9
return function_140011f24(a1);
}
// Address range: 0x140011f24 - 0x140011ff6
int64_t function_140011f24(int64_t a1) {
int64_t v1 = a1; // 0x140011f24
v1 = a1;
if (IsProcessorFeaturePresent(23)) {
// 0x140011f3c
__asm_int(41);
}
// 0x140011f43
int64_t v2; // bp-56, 0x140011f24
int64_t v3 = &v2; // 0x140011f29
capture_previous_context(&g107);
g109 = &v1;
g108 = v1;
*(int32_t *)&g103 = -0x3ffffbf7;
*(int32_t *)&g104 = 1;
*(int32_t *)&g105 = 1;
g106 = 2;
*(int64_t *)(v3 + 32) = g29;
*(int64_t *)(v3 + 40) = g30;
return __raise_securityfailure(0x14001b510);
}
// Address range: 0x140011ff8 - 0x14001200b
int64_t function_140011ff8(void) {
// 0x140011ff8
return function_14001200c(8);
}
// Address range: 0x14001200c - 0x1400120a8
int64_t function_14001200c(int64_t a1) {
int64_t v1 = 0x100000000 * a1 / 0x100000000; // 0x14001200c
int64_t v2 = v1; // 0x14001200c
v2 = v1;
if (IsProcessorFeaturePresent(23)) {
// 0x140012023
__asm_int(41);
}
// 0x14001202b
_3f_capture_current_context_40__40_YAXQEAU_CONTEXT_40__40__40_Z((int64_t *)&g113);
g109 = &v2;
*(int32_t *)&g103 = -0x3ffffbf7;
*(int32_t *)&g104 = 1;
*(int32_t *)&g105 = 1;
g106 = v2 & 0xffffffff;
return __raise_securityfailure((int64_t)&g23);
}
// Address range: 0x140012200 - 0x1400122c7
int64_t function_140012200(int64_t a1, int64_t a2, int64_t a3) {
int64_t v1 = a2 - a1; // 0x140012200
int64_t v2 = a1; // 0x140012207
int64_t v3 = a3; // 0x140012207
bool v4; // 0x140012200
int64_t v5; // 0x140012200
int64_t v6; // 0x140012200
int64_t v7; // 0x140012200
int64_t v8; // 0x140012200
int64_t v9; // 0x140012200
if (a3 < 8) {
goto lab_0x14001222b;
} else {
int64_t v10 = a1; // 0x14001220c
int64_t v11 = a3; // 0x14001220c
v5 = a3;
v9 = a1;
if ((a1 & 7) == 0) {
goto lab_0x14001224a;
} else {
unsigned char v12 = *(char *)v10; // 0x140012210
int64_t v13; // 0x140012200
int64_t v14 = v13 & -256 | (int64_t)v12; // 0x140012210
unsigned char v15 = *(char *)(v10 + v1); // 0x140012212
while (v12 == v15) {
int64_t v16 = v10 + 1; // 0x140012217
int64_t v17 = v11 - 1; // 0x14001221a
v10 = v16;
v11 = v17;
if ((v16 & 7) == 0) {
// 0x140012222
v7 = v14;
v2 = v16;
v3 = v17;
v5 = v17;
v9 = v16;
v6 = v14;
if (v17 >= 8) {
goto lab_0x14001224a;
} else {
goto lab_0x14001222b;
}
}
v12 = *(char *)v10;
v14 = v14 & -256 | (int64_t)v12;
v15 = *(char *)(v10 + v1);
}
// 0x140012243
v4 = v12 < v15;
v8 = v14;
goto lab_0x140012243;
}
}
lab_0x1400122ac_2:;
// 0x1400122ac
int64_t v18; // 0x140012200
int64_t v19 = v1 + 8 + v18; // 0x1400122ac
int64_t v20; // 0x140012200
int64_t v21 = v20; // 0x1400122ac
goto lab_0x1400122b4;
lab_0x14001222b:;
int64_t v29 = v2; // 0x14001222e
if (v3 == 0) {
// 0x14001223f
return 0;
}
int64_t v30 = v3; // 0x14001222e
unsigned char v31 = *(char *)v29; // 0x140012230
int64_t v32 = v7 & -256 | (int64_t)v31; // 0x140012230
unsigned char v33 = *(char *)(v29 + v1); // 0x140012232
while (v31 == v33) {
int64_t v34 = v30 - 1; // 0x14001223a
v29++;
v30 = v34;
if (v34 == 0) {
// 0x14001223f
return 0;
}
v31 = *(char *)v29;
v32 = v32 & -256 | (int64_t)v31;
v33 = *(char *)(v29 + v1);
}
// 0x140012243
v4 = v31 < v33;
v8 = v32;
goto lab_0x140012243;
lab_0x140012243:;
uint32_t v35 = (int32_t)v8; // 0x140012243
int32_t v36 = v4; // 0x140012243
uint32_t v37 = v35 + v36; // 0x140012243
int32_t v38 = v4; // 0x140012243
bool v39 = v4 ? v38 - v36 > v35 | v37 != -1 : v37 > v35; // 0x140012243
return (int32_t)!v39 + v38;
lab_0x14001224a:;
int64_t v40 = v9; // 0x14001224e
int64_t v41 = v5 / 32; // 0x14001224e
int64_t v42 = v6; // 0x14001224e
int64_t v43 = v9; // 0x14001224e
int64_t v44 = v5; // 0x14001224e
if (v5 < 32) {
goto lab_0x140012287;
} else {
int64_t v45 = *(int64_t *)v40; // 0x140012250
int64_t v46 = v40 + v1;
v19 = v46;
v21 = v45;
while (v45 == *(int64_t *)v46) {
int64_t v47 = v40 + 8;
int64_t v48 = *(int64_t *)v47; // 0x140012259
int64_t v49 = v47 + v1;
v19 = v49;
v21 = v48;
if (v48 != *(int64_t *)v49) {
// break -> 0x1400122b4
break;
}
int64_t v50 = v40 + 16; // 0x140012264
int64_t v51 = *(int64_t *)v50; // 0x140012264
v18 = v47;
v20 = v51;
if (v51 != *(int64_t *)(v50 + v1)) {
goto lab_0x1400122ac_2;
}
int64_t v52 = v40 + 24; // 0x14001226f
int64_t v53 = *(int64_t *)v52; // 0x14001226f
v18 = v50;
v20 = v53;
if (v53 != *(int64_t *)(v52 + v1)) {
goto lab_0x1400122ac_2;
}
int64_t v54 = v40 + 32; // 0x14001227a
int64_t v55 = v41 - 1; // 0x14001227e
v40 = v54;
v41 = v55;
if (v55 == 0) {
// 0x140012283
v42 = v53;
v43 = v54;
v44 = v5 & 31;
goto lab_0x140012287;
}
v45 = *(int64_t *)v40;
v46 = v40 + v1;
v19 = v46;
v21 = v45;
}
goto lab_0x1400122b4;
}
lab_0x140012287:
// 0x140012287
v7 = v42;
v2 = v43;
v3 = v44;
int64_t v56 = v43; // 0x14001228e
int64_t v57 = v44 / 8; // 0x14001228e
if (v44 < 8) {
goto lab_0x14001222b;
} else {
int64_t v58 = *(int64_t *)v56; // 0x140012290
int64_t v59 = v56 + v1;
v19 = v59;
v21 = v58;
while (v58 == *(int64_t *)v59) {
int64_t v60 = v56 + 8; // 0x140012299
int64_t v61 = v57 - 1; // 0x14001229d
v56 = v60;
v57 = v61;
if (v61 == 0) {
// 0x1400122a2
v7 = v58;
v2 = v60;
v3 = v44 & 7;
goto lab_0x14001222b;
}
v58 = *(int64_t *)v56;
v59 = v56 + v1;
v19 = v59;
v21 = v58;
}
goto lab_0x1400122b4;
}
lab_0x1400122b4:;
uint64_t v22 = llvm_bswap_i64(v21); // 0x1400122b8
uint64_t v23 = llvm_bswap_i64(*(int64_t *)v19); // 0x1400122bb
uint32_t v24 = (int32_t)v22; // 0x1400122c1
int32_t v25 = v22 < v23; // 0x1400122c1
uint32_t v26 = v25 + v24; // 0x1400122c1
int32_t v27 = v22 < v23; // 0x1400122c1
bool v28 = v22 < v23 ? v27 - v25 > v24 | v26 != -1 : v26 > v24; // 0x1400122c1
return (int32_t)!v28 + v27;
}
// Address range: 0x1400122c8 - 0x140012403
int64_t function_1400122c8(int64_t a1, int64_t a2) {
int32_t v1 = a2; // 0x1400122d3
if (v1 == 0) {
int64_t v2 = a1 & -16; // 0x1400122de
int128_t v3; // 0x1400122c8
int128_t v4 = __asm_pcmpeqb(__asm_xorps(v3, v3), *(int128_t *)v2); // 0x1400122ef
int32_t v5 = __asm_pmovmskb(v4) & -1 << ((int32_t)a1 & 15); // 0x1400122f7
int32_t v6 = v5; // 0x1400122fa
int64_t v7 = v2; // 0x1400122fa
if (v5 == 0) {
int128_t v8 = v4;
int64_t v9 = v2 + 16; // 0x1400122fc
int128_t v10 = __asm_pcmpeqb(__asm_xorps(v8, v8), *(int128_t *)v9); // 0x140012303
int32_t v11 = __asm_pmovmskb(v10); // 0x140012307
int64_t v12 = v9; // 0x14001230d
v6 = v11;
v7 = v9;
while (v11 == 0) {
// 0x1400122fc
v8 = v10;
v9 = v12 + 16;
v10 = __asm_pcmpeqb(__asm_xorps(v8, v8), *(int128_t *)v9);
v11 = __asm_pmovmskb(v10);
v12 = v9;
v6 = v11;
v7 = v9;
}
}
int32_t v13 = v6;
// 0x1400123bf
return v7 + (int64_t)(v13 == 0 ? 0 : llvm_cttz_i32(v13, true));
}
// 0x14001231a
if (g25 > 1) {
int64_t result2 = 0; // 0x1400123dc
int64_t v14 = a1; // 0x1400123dc
int64_t v15 = a1; // 0x1400123dc
int64_t result = 0; // 0x1400123dc
if ((a1 & 15) == 0) {
lab_0x1400123fb:
// 0x1400123fb
__asm_pcmpistri(__asm_movd(v1 & 255), *(int128_t *)v15, 64);
// 0x1400123bf
return result;
}
char v16 = *(char *)v14;
result2 = (int32_t)v16 == v1 ? v14 : result2;
while (v16 != 0) {
// 0x1400123d5
v14++;
v15 = v14;
result = result2;
if ((v14 & 15) == 0) {
goto lab_0x1400123fb;
}
v16 = *(char *)v14;
result2 = (int32_t)v16 == v1 ? v14 : result2;
}
// 0x1400123bf
return result2;
}
int32_t v17 = v1 & 255; // 0x14001232e
int64_t v18 = a1 & -16; // 0x140012336
int64_t v19 = a1 & 15; // 0x14001233c
int128_t v20 = __asm_movd(256 * v17 | v17); // 0x140012343
int128_t v21 = __asm_pshuflw(v20, 0); // 0x14001234a
int128_t v22 = __asm_xorps(v20, v20); // 0x14001234f
int128_t * v23 = (int128_t *)v18; // 0x140012352
int32_t v24 = __asm_pmovmskb(__asm_pcmpeqb(v22, *v23)); // 0x140012357
int32_t v25 = v19;
int32_t v26 = -1 << v25;
int128_t v27 = __asm_pshufd(v21, 0); // 0x14001235e
int32_t v28 = __asm_pmovmskb(__asm_pcmpeqb(__asm_movdqa_9(v27), *v23)) & v26; // 0x140012372
uint32_t v29 = v24 & v26;
int32_t v30 = v25; // 0x140012377
int64_t v31 = v28; // 0x140012377
int64_t v32 = v29; // 0x140012377
int64_t v33 = 0; // 0x140012377
int64_t v34 = v18; // 0x140012377
if (v29 == 0) {
int32_t v35 = v28;
int128_t v36 = v21;
uint32_t v37 = v35 == 0 ? (int32_t)v19 : llvm_ctlz_i32(v35, true) ^ 31; // 0x140012379
int128_t v38 = __asm_xorps(v36, v36); // 0x14001237c
int128_t v39 = __asm_movdqa_9(v27); // 0x14001237f
int64_t v40 = v34 + (int64_t)v37; // 0x140012383
v33 = v35 != 0 ? v40 : v33;
v34 += 16;
int128_t * v41 = (int128_t *)v34; // 0x140012390
int128_t v42 = __asm_pcmpeqb(v38, *v41); // 0x140012390
int128_t v43 = __asm_pcmpeqb(v39, *v41); // 0x140012395
int32_t v44 = __asm_pmovmskb(v42); // 0x14001239a
int32_t v45 = __asm_pmovmskb(v43); // 0x14001239e
while (v44 == 0) {
// 0x140012379
v35 = v45;
v36 = v42;
v37 = v35 == 0 ? (int32_t)v40 : llvm_ctlz_i32(v35, true) ^ 31;
v38 = __asm_xorps(v36, v36);
v39 = __asm_movdqa_9(v27);
v40 = v34 + (int64_t)v37;
v33 = v35 != 0 ? v40 : v33;
v34 += 16;
v41 = (int128_t *)v34;
v42 = __asm_pcmpeqb(v38, *v41);
v43 = __asm_pcmpeqb(v39, *v41);
v44 = __asm_pmovmskb(v42);
v45 = __asm_pmovmskb(v43);
}
// 0x1400123a6
v30 = v40;
v31 = v45;
v32 = v44;
}
int64_t v46 = v32;
int32_t v47 = (v46 & -v46) + 0xffffffff & v31; // 0x1400123b0
uint32_t v48 = v47 == 0 ? v30 : llvm_ctlz_i32(v47, true) ^ 31; // 0x1400123b0
// 0x1400123bf
return v47 != 0 ? v34 + (int64_t)v48 : v33;
}
// Address range: 0x140012404 - 0x140012481
int64_t function_140012404(int64_t a1, int64_t a2) {
int64_t v1 = a2 & 255; // 0x140012404
int64_t v2 = a1 & -16; // 0x14001240d
int128_t v3 = __asm_movd((int32_t)(256 * v1 | v1)); // 0x140012423
int128_t v4 = __asm_pshuflw(v3, 0); // 0x140012428
int128_t v5 = __asm_xorps(v3, v3); // 0x14001242d
int128_t * v6 = (int128_t *)v2; // 0x140012430
int128_t v7 = __asm_pcmpeqb(v5, *v6); // 0x140012430
int128_t v8 = __asm_pshufd(v4, 0); // 0x140012435
int128_t v9 = __asm_por(__asm_pcmpeqb(__asm_movdqa_9(v8), *v6), v7); // 0x140012443
int32_t v10 = __asm_pmovmskb(v9) & -1 << ((int32_t)a1 & 15); // 0x14001244b
int64_t v11 = v2; // 0x14001244d
int32_t v12 = v10; // 0x14001244d
int64_t v13 = v2; // 0x14001244d
if (v10 == 0) {
int128_t v14 = v7;
v11 += 16;
int128_t v15 = __asm_movdqa_9(v8); // 0x140012453
int128_t v16 = __asm_xorps(v14, v14); // 0x140012457
int128_t * v17 = (int128_t *)v11; // 0x14001245a
int128_t v18 = __asm_pcmpeqb(v15, *v17); // 0x14001245a
int128_t v19 = __asm_pcmpeqb(v16, *v17); // 0x14001245f
int32_t v20 = __asm_pmovmskb(__asm_por(v18, v19)); // 0x140012468
v12 = v20;
v13 = v11;
while (v20 == 0) {
// 0x14001244f
v14 = v19;
v11 += 16;
v15 = __asm_movdqa_9(v8);
v16 = __asm_xorps(v14, v14);
v17 = (int128_t *)v11;
v18 = __asm_pcmpeqb(v15, *v17);
v19 = __asm_pcmpeqb(v16, *v17);
v20 = __asm_pmovmskb(__asm_por(v18, v19));
v12 = v20;
v13 = v11;
}
}
int32_t v21 = v12;
int64_t v22 = v13 + (int64_t)(v21 == 0 ? 0 : llvm_cttz_i32(v21, true)); // 0x140012473
return *(char *)v22 == (char)a2 ? v22 : 0;
}
// Address range: 0x1400124a0 - 0x1400124a2
int64_t function_1400124a0(int32_t a1, int64_t a2, int32_t a3) {
// 0x1400124a0
int64_t result; // 0x1400124a0
return result;
}
// Address range: 0x1400124c0 - 0x1400124c6
int64_t function_1400124c0(void) {
// 0x1400124c0
int64_t v1; // 0x1400124c0
int64_t v2; // 0x1400124c0
int64_t v3; // 0x1400124c0
return function_1400124a0((int32_t)v3, v2, (int32_t)v1);
}
// Address range: 0x1400124d0 - 0x1400124ed
int64_t function_1400124d0(int64_t a1, int64_t a2) {
// 0x1400124d0
int64_t v1; // 0x1400124d0
return function_140004714((int32_t)v1, a1);
}
// Address range: 0x1400124ee - 0x140012505
int64_t function_1400124ee(int64_t a1, int64_t a2) {
// 0x1400124ee
int64_t v1; // 0x1400124ee
return (bool)((int32_t)v1 == -0x3ffffffb);
}
// Address range: 0x140012506 - 0x14001259b
int64_t function_140012506(int64_t a1, int64_t a2) {
// 0x140012506
*(int64_t *)(a2 + 56) = a1;
int64_t * v1 = (int64_t *)(a2 + 48); // 0x140012514
*v1 = a1;
if (*(char *)(a2 + 88) == 0) {
// 0x14001258a
*(int32_t *)(a2 + 32) = 0;
return 0;
}
int64_t v2 = *(int64_t *)a1; // 0x140012522
int64_t * v3 = (int64_t *)(a2 + 40); // 0x140012525
*v3 = v2;
if (*(int32_t *)v2 != -0x1f928c9d || *(int32_t *)(v2 + 24) != 4) {
// 0x14001258a
*(int32_t *)(a2 + 32) = 0;
return 0;
}
int32_t v4 = *(int32_t *)(v2 + 32); // 0x140012543
if ((v4 & -2) != 0x19930520 != v4 != 0x19930522) {
int64_t v5 = __vcrt_getptd(); // 0x140012566
int64_t v6 = *v3; // 0x14001256b
*(int64_t *)(v5 + 32) = v6;
*(int64_t *)(__vcrt_getptd() + 40) = *(int64_t *)(*v1 + 8);
int64_t v7; // 0x140012506
terminate(v6, a2, v7);
}
// 0x14001258a
*(int32_t *)(a2 + 32) = 0;
return 0;
}
// Address range: 0x14001259c - 0x1400125b6
int64_t function_14001259c(void) {
// 0x14001259c
int64_t v1; // 0x14001259c
LeaveCriticalSection((struct _RTL_CRITICAL_SECTION *)*(int64_t *)*(int64_t *)(v1 + 72));
return &g113;
}
// Address range: 0x1400125b7 - 0x1400125d0
int64_t function_1400125b7(void) {
// 0x1400125b7
int64_t v1; // 0x1400125b7
return __acrt_lock2(*(int32_t *)*(int64_t *)(v1 + 72), v1);
}
// Address range: 0x1400125d1 - 0x1400125eb
int64_t function_1400125d1(int64_t result, int64_t a2) {
// 0x1400125d1
return result;
}
// Address range: 0x1400125ec - 0x140012605
int64_t function_1400125ec(void) {
// 0x1400125ec
int64_t v1; // 0x1400125ec
return __acrt_lock2(*(int32_t *)*(int64_t *)(v1 + 88), v1);
}
// Address range: 0x14001261f - 0x14001263b
int64_t function_14001261f(void) {
// 0x14001261f
int64_t v1; // 0x14001261f
return __acrt_lock2(*(int32_t *)*(int64_t *)(v1 + 152), v1);
}
// Address range: 0x14001269d - 0x1400126bd
int64_t function_14001269d(void) {
// 0x14001269d
int64_t result; // 0x14001269d
int64_t v1; // 0x14001269d
if (*(char *)(v1 + 112) != 0) {
// 0x1400126ac
result = __acrt_lock2(3, v1);
}
// 0x1400126b7
return result;
}
// Address range: 0x1400126be - 0x1400126d5
int64_t function_1400126be(void) {
// 0x1400126be
int64_t v1; // 0x1400126be
LeaveCriticalSection((struct _RTL_CRITICAL_SECTION *)*(int64_t *)(v1 + 48));
return &g113;
}
// Address range: 0x1400126d6 - 0x1400126ef
int64_t function_1400126d6(void) {
// 0x1400126d6
int64_t v1; // 0x1400126d6
return function_14000acfc(*(int32_t *)*(int64_t *)(v1 + 72));
}
// Address range: 0x1400126f0 - 0x140012706
int64_t function_1400126f0(void) {
// 0x1400126f0
int64_t v1; // 0x1400126f0
return function_14000acfc(*(int32_t *)(v1 + 80));
}
// Address range: 0x140012707 - 0x140012732
int64_t function_140012707(int64_t a1, int64_t a2) {
int64_t result = 0; // 0x140012707
int64_t v1; // 0x140012707
switch ((int32_t)v1) {
case -0x3ffffffb: {
}
case -0x3fffffe3: {
// 0x140012727
result = 1;
// break -> 0x14001272c
break;
}
}
// 0x14001272c
return result;
}
// Address range: 0x140012740 - 0x14001275f
int64_t function_140012740(int64_t a1, int64_t a2) {
// 0x140012740
int64_t v1; // 0x140012740
return (bool)((int32_t)v1 == -0x3ffffffb);
}
// --------------- Statically Linked Functions ----------------
// void _3f__3f__24_common_get_or_create_environment_nolock_40_D_40__40_YAPEAPEADXZ(void);
// void _3f__3f__24_free_environment_40_D_40__40_YAXQEAPEAD_40_Z(char ** a1);
// void _3f_capture_current_context_40__40_YAXQEAU_CONTEXT_40__40__40_Z(int64_t * a1);
// void _3f_common_exit_40__40_YAXHW4_crt_exit_cleanup_mode_40__40_W4_crt_exit_return_mode_40__40__40_Z(int32_t a1, int64_t a2, int64_t a3);
// void _3f_construct_ptd_array_40__40_YAXQEAU__acrt_ptd_40__40__40_Z(int64_t * a1);
// void _3f_getSystemCP_40__40_YAHH_40_Z(int32_t a1);
// void _3f_setSBCS_40__40_YAXPEAU__crt_multibyte_data_40__40__40_Z(int64_t * a1);
// void _3f_x_ismbbtype_l_40__40_YAHPEAU__crt_locale_pointers_40__40_IHH_40_Z(int64_t * a1, int32_t a2, int32_t a3, int32_t a4);
// int64_t __acrt_add_locale_ref(int64_t a1);
// int64_t __acrt_AppPolicyGetProcessTerminationMethodInternal(int32_t * a1);
// int64_t __acrt_AreFileApisANSI(void);
// int64_t __acrt_call_reportfault(int64_t a1, int64_t a2, int64_t a3);
// int64_t __acrt_CompareStringEx(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
// int64_t __acrt_errno_map_os_error(int64_t a1, int64_t a2, int64_t a3);
// int64_t __acrt_FlsAlloc(int64_t a1);
// int64_t __acrt_FlsGetValue(int32_t a1);
// int64_t __acrt_FlsSetValue(int32_t a1, int64_t a2);
// int64_t __acrt_free_locale(int64_t a1);
// int64_t __acrt_has_user_matherr(void);
// int64_t __acrt_initialize_multibyte(void);
// int64_t __acrt_initialize_signal_handlers(int64_t a1);
// int64_t __acrt_InitializeCriticalSectionEx(int64_t a1, int64_t a2, int32_t a3);
// int64_t __acrt_invoke_user_matherr(int32_t * a1);
// _ACRTIMP_ALT FILE * __cdecl __acrt_iob_func(unsigned);
// int64_t __acrt_LCMapStringA(int32_t a1, int64_t a2, int64_t a3, int64_t * a4, int64_t a5, int64_t * a6, int64_t a7, int64_t a8, int32_t a9);
// int64_t __acrt_LCMapStringEx(int64_t a1, int64_t a2, int64_t a3, int64_t a4);
// int64_t __acrt_lock(int32_t a1);
// int64_t __acrt_lock2(int32_t a1, int64_t a2);
// int64_t __acrt_release_locale_ref(int64_t a1);
// int64_t __acrt_uninitialize_locks(void);
// int64_t __acrt_uninitialize_ptd(void);
// int64_t __acrt_uninitialize_ptd2(int32_t a1);
// int64_t __acrt_update_locale_info(int64_t a1, int64_t a2);
// int64_t __acrt_update_locale_info2(int64_t a1, int64_t a2);
// int64_t __chkstk(int64_t a1, int64_t a2, int64_t a3);
// int64_t __dcrt_uninitialize_environments_nolock(void);
// unsigned long * __cdecl __doserrno(void);
// const unsigned short * __pctype_func(void);
// int64_t __raise_securityfailure(int64_t a1);
// int64_t __scrt_acquire_startup_lock(void);
// int64_t __scrt_release_startup_lock(int64_t a1);
// void __setusermatherr(_HANDLE_MATH_ERROR pf);
// int __cdecl __stdio_common_vfprintf(_In_ unsigned __int64 Options, _Inout_ FILE * Stream, _In_z_ char const * Format, _In_opt_ _locale_t Locale, va_list ArgList);
// int64_t __vcrt_getptd(void);
// int64_t __vcrt_initialize_locks(void);
// int __cdecl _callnewh(_In_ size_t Size);
// void * __cdecl _calloc_base(_In_ size_t Count, _In_ size_t Size);
// int __cdecl _configthreadlocale(_In_ int Flag);
// int * __cdecl _errno(void);
// int __cdecl _fileno(_In_ FILE * Stream);
// int64_t _FindPESection(int64_t a1, int64_t a2);
// void __cdecl _free_base(void * Block);
// char ** __cdecl _get_initial_narrow_environment(void);
// int __cdecl _get_printf_count_output(void);
// void __cdecl _initterm(_In_ _PVFV * First, _In_ _PVFV * Last);
// int __cdecl _initterm_e(_PIFV * First, _In_ _PIFV * Last);
// void __cdecl _invalid_parameter(wchar_t const *, wchar_t const *, wchar_t const *, _In_ unsigned int, _In_ uintptr_t);
// void * __cdecl _malloc_base(_In_ size_t Size);
// int64_t _msize_base(void);
// int64_t _NLG_Notify(int64_t a1, int64_t a2, int64_t a3);
// int64_t _set_errno_from_matherr(int64_t a1);
// errno_t __cdecl _set_fmode(_In_ int Mode);
// int __cdecl _set_new_mode(_In_ int NewMode);
// int __cdecl _strnicmp(char const * String1, char const * String2, _In_ size_t MaxCount);
// int __cdecl _strnicoll_l(char const * String1, char const * String2, _In_ size_t MaxCount, _In_opt_ _locale_t Locale);
// int64_t capture_previous_context(int64_t * a1);
// double ceil(double);
// void free(void * ptr);
// double log10(double);
// errno_t memcpy_s(void * const Destination, _In_ rsize_t const DestinationSize, void const * const Source, _In_ rsize_t const SourceSize);
// errno_t __cdecl strcpy_s(char * Destination, _In_ rsize_t SizeInBytes, _In_z_ char const * Source);
// int64_t terminate(int64_t a1, int64_t a2, int64_t a3);
// int wcsncmp(const wchar_t * s1, const wchar_t * s2, size_t n);
// --------------- Dynamically Linked Functions ---------------
// BOOL CloseHandle(_In_ HANDLE hObject);
// HANDLE CreateFileW(_In_ LPCWSTR lpFileName, _In_ DWORD dwDesiredAccess, _In_ DWORD dwShareMode, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _In_ DWORD dwCreationDisposition, _In_ DWORD dwFlagsAndAttributes, _In_opt_ HANDLE hTemplateFile);
// VOID DeleteCriticalSection(_Inout_ LPCRITICAL_SECTION lpCriticalSection);
// VOID EnterCriticalSection(_Inout_ LPCRITICAL_SECTION lpCriticalSection);
// HANDLE FindFirstFileExW(_In_ LPCWSTR lpFileName, _In_ FINDEX_INFO_LEVELS fInfoLevelId, LPVOID lpFindFileData, _In_ FINDEX_SEARCH_OPS fSearchOp, LPVOID lpSearchFilter, _In_ DWORD dwAdditionalFlags);
// BOOL FlushFileBuffers(_In_ HANDLE hFile);
// BOOL FreeEnvironmentStringsW(_In_ LPWCH penv);
// BOOL FreeLibrary(_In_ HMODULE hLibModule);
// BOOL GetConsoleMode(_In_ HANDLE hConsoleHandle, _Out_ LPDWORD lpMode);
// UINT GetConsoleOutputCP(VOID);
// BOOL GetCPInfo(_In_ UINT CodePage, _Out_ LPCPINFO lpCPInfo);
// HANDLE GetCurrentProcess(VOID);
// DWORD GetCurrentProcessId(VOID);
// DWORD GetCurrentThreadId(VOID);
// LPWCH GetEnvironmentStringsW(void);
// BOOL GetFileSizeEx(_In_ HANDLE hFile, _Out_ PLARGE_INTEGER lpFileSize);
// DWORD GetFileType(_In_ HANDLE hFile);
// DWORD GetLastError(VOID);
// DWORD GetModuleFileNameW(_In_opt_ HMODULE hModule, LPWSTR lpFilename, _In_ DWORD nSize);
// HMODULE GetModuleHandleW(_In_opt_ LPCWSTR lpModuleName);
// FARPROC GetProcAddress(_In_ HMODULE hModule, _In_ LPCSTR lpProcName);
// VOID GetStartupInfoW(_Out_ LPSTARTUPINFOW lpStartupInfo);
// HANDLE GetStdHandle(_In_ DWORD nStdHandle);
// BOOL GetStringTypeW(_In_ DWORD dwInfoType, LPCWCH lpSrcStr, _In_ int cchSrc, _Out_ LPWORD lpCharType);
// VOID GetSystemTimeAsFileTime(_Out_ LPFILETIME lpSystemTimeAsFileTime);
// LPVOID HeapReAlloc(_Inout_ HANDLE hHeap, _In_ DWORD dwFlags, LPVOID lpMem, _In_ SIZE_T dwBytes);
// BOOL InitializeCriticalSectionAndSpinCount(_Out_ LPCRITICAL_SECTION lpCriticalSection, _In_ DWORD dwSpinCount);
// VOID InitializeSListHead(_Out_ PSLIST_HEADER ListHead);
// BOOL IsDebuggerPresent(VOID);
// BOOL IsProcessorFeaturePresent(_In_ DWORD ProcessorFeature);
// BOOL IsValidCodePage(_In_ UINT CodePage);
// VOID LeaveCriticalSection(_Inout_ LPCRITICAL_SECTION lpCriticalSection);
// HMODULE LoadLibraryExW(_In_ LPCWSTR lpLibFileName, HANDLE hFile, _In_ DWORD dwFlags);
// int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, LPCCH lpMultiByteStr, _In_ int cbMultiByte, LPWSTR lpWideCharStr, _In_ int cchWideChar);
// BOOL QueryPerformanceCounter(_Out_ LARGE_INTEGER * lpPerformanceCount);
// VOID RaiseException(_In_ DWORD dwExceptionCode, _In_ DWORD dwExceptionFlags, _In_ DWORD nNumberOfArguments, const ULONG_PTR * lpArguments);
// VOID RtlCaptureContext(_Out_ PCONTEXT ContextRecord);
// PRUNTIME_FUNCTION RtlLookupFunctionEntry(_In_ ULONG64 ControlPc, _Out_ PULONG64 ImageBase, _Inout_opt_ PUNWIND_HISTORY_TABLE HistoryTable);
// VOID RtlUnwindEx(_In_opt_ PVOID TargetFrame, _In_opt_ PVOID TargetIp, _In_opt_ PEXCEPTION_RECORD ExceptionRecord, _In_ PVOID ReturnValue, _In_ PCONTEXT ContextRecord, _In_opt_ PUNWIND_HISTORY_TABLE HistoryTable);
// PEXCEPTION_ROUTINE RtlVirtualUnwind(_In_ ULONG HandlerType, _In_ ULONG64 ImageBase, _In_ ULONG64 ControlPc, _In_ PRUNTIME_FUNCTION FunctionEntry, _Inout_ PCONTEXT ContextRecord, _Out_ PVOID * HandlerData, _Out_ PULONG64 EstablisherFrame, _Inout_opt_ PKNONVOLATILE_CONTEXT_POINTERS ContextPointers);
// BOOL SetEnvironmentVariableW(_In_ LPCWSTR lpName, _In_opt_ LPCWSTR lpValue);
// BOOL SetFilePointerEx(_In_ HANDLE hFile, _In_ LARGE_INTEGER liDistanceToMove, _Out_opt_ PLARGE_INTEGER lpNewFilePointer, _In_ DWORD dwMoveMethod);
// VOID SetLastError(_In_ DWORD dwErrCode);
// BOOL SetStdHandle(_In_ DWORD nStdHandle, _In_ HANDLE hHandle);
// LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(_In_opt_ LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);
// BOOL TerminateProcess(_In_ HANDLE hProcess, _In_ UINT uExitCode);
// DWORD TlsAlloc(VOID);
// BOOL TlsFree(_In_ DWORD dwTlsIndex);
// LPVOID TlsGetValue(_In_ DWORD dwTlsIndex);
// BOOL TlsSetValue(_In_ DWORD dwTlsIndex, _In_opt_ LPVOID lpTlsValue);
// LONG UnhandledExceptionFilter(_In_ struct _EXCEPTION_POINTERS * ExceptionInfo);
// int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, LPCWCH lpWideCharStr, _In_ int cchWideChar, LPSTR lpMultiByteStr, _In_ int cbMultiByte, _In_opt_ LPCCH lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
// BOOL WriteConsoleW(_In_ HANDLE hConsoleOutput, const VOID * lpBuffer, _In_ DWORD nNumberOfCharsToWrite, _Out_opt_ LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved);
// BOOL WriteFile(_In_ HANDLE hFile, LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped);
// --------------------- Meta-Information ---------------------
// Detected compiler/packer: msvc
// Detected functions: 328
This file has been truncated, but you can view the full file.
{
"date": "2022-06-04",
"time": "09:19:18",
"inputFile": "[cwd]\\hello.exe",
"entryPoint": "0x140001370",
"imageBase": "0x140000000",
"decompParams": {
"verboseOut": false,
"keepAllFuncs": false,
"selectedDecodeOnly": false,
"outputFile": "[cwd]\\hello.exe.c",
"ordinalNumDirectory": "retdec\\bin\\..\\share\\retdec\\support\\x86\\ords\\",
"staticSignPaths": [
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/ucrt/x64-debug.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/ucrt/x64.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-debug-vs-2010.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-debug-vs-2012.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-debug-vs-2013.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-debug-vs-2015.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-debug-vs-2017.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-mingw-4.9.0.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-vs-2010.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-vs-2012.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-vs-2013.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-vs-2015.yarac",
"retdec/bin/../share/retdec/support/generic/yara_patterns/static-code/pe/64/le/x86/x64-vs-2017.yarac"
],
"libraryTypeInfoPaths": [
"retdec/bin/../share/retdec/support/generic/types/arm.json",
"retdec/bin/../share/retdec/support/generic/types/cstdlib.json",
"retdec/bin/../share/retdec/support/generic/types/linux.json",
"retdec/bin/../share/retdec/support/generic/types/windows.json",
"retdec/bin/../share/retdec/support/generic/types/windrivers.json"
],
"frontendFunctions": [
"__decompiler_undefined_function_"
]
},
"architecture": {
"name": "x86-64",
"bitSize": 64,
"endian": "little"
},
"fileType": "executable",
"fileFormat": "pe64",
"tools": [
{
"type": "compiler",
"name": "msvc",
"percentage": 1.0,
"percentage": 0,
"percentage": 0,
"heuristics": false
},
{
"type": "linker",
"name": "microsoft",
"percentage": 0.0,
"percentage": 0,
"percentage": 0,
"heuristics": true
}
],
"functions": [
{
"name": "??$common_get_or_create_environment_nolock@D@@YAPEAPEADXZ",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "char ** __cdecl common_get_or_create_environment_nolock<char>(void)",
"startAddr": "0x140004f94",
"endAddr": "0x140004fcf",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "??$free_environment@D@@YAXQEAPEAD@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "void __cdecl free_environment<char>(char **const)",
"startAddr": "0x140004e44",
"endAddr": "0x140004e85",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i8**"
}
}
]
},
{
"name": "??$uninitialize_environment_internal@D@@YAXAEAPEAPEAD@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "void __cdecl uninitialize_environment_internal<char>(char **&)",
"startAddr": "0x140004f5c",
"endAddr": "0x140004f76",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i8***"
}
}
]
},
{
"name": "??$uninitialize_environment_internal@D@@[email protected]",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"realName": "??$uninitialize_environment_internal@D@@YAXAEAPEAPEAD@Z",
"demangledName": "void __cdecl uninitialize_environment_internal<char>(char **&)",
"startAddr": "0x140004f78",
"endAddr": "0x140004f92",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i8***"
}
}
]
},
{
"name": "?capture_current_context@@YAXQEAU_CONTEXT@@@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "void __cdecl capture_current_context(struct _CONTEXT *const)",
"startAddr": "0x1400120a8",
"endAddr": "0x140012115",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "?common_exit@@YAXHW4_crt_exit_cleanup_mode@@W4_crt_exit_return_mode@@@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "void __cdecl common_exit(int, enum _crt_exit_cleanup_mode, enum _crt_exit_return_mode)",
"startAddr": "0x14000520c",
"endAddr": "0x1400052c7",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "?construct_ptd_array@@YAXQEAU__acrt_ptd@@@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "void __cdecl construct_ptd_array(struct __acrt_ptd *const)",
"startAddr": "0x1400078f4",
"endAddr": "0x1400079c1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "?destroy_fls@@YAXPEAX@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "void __cdecl destroy_fls(void *)",
"startAddr": "0x1400079c4",
"endAddr": "0x1400079e4",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "?destroy_ptd_array@@YAXQEAU__acrt_ptd@@@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "void __cdecl destroy_ptd_array(struct __acrt_ptd *const)",
"startAddr": "0x1400079e4",
"endAddr": "0x140007ad9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "?exit_or_terminate_process@@YAXI@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "void __cdecl exit_or_terminate_process(unsigned int)",
"startAddr": "0x1400052c8",
"endAddr": "0x140005311",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "?fin$0@?0??__acrt_stdio_allocate_stream@@YA?AV__crt_stdio_stream@@XZ@4HA",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"demangledName": "int `class __crt_stdio_stream __cdecl __acrt_stdio_allocate_stream(void)'::`1'::fin$0",
"startAddr": "0x140012606",
"endAddr": "0x14001261e",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "?fin$0@?0??update_thread_multibyte_data_internal@@YAPEAU__crt_multibyte_data@@QEAU__acrt_ptd@@QEAU1@@Z@4HA",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"demangledName": "int `struct __crt_multibyte_data * __cdecl update_thread_multibyte_data_internal(struct __acrt_ptd *const, struct update_thread_multibyte_data_internal *const)'::`1'::fin$0",
"startAddr": "0x140012655",
"endAddr": "0x14001266d",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "?getSystemCP@@YAHH@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "int __cdecl getSystemCP(int)",
"startAddr": "0x140009af0",
"endAddr": "0x140009b6d",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "?setSBCS@@YAXPEAU__crt_multibyte_data@@@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "void __cdecl setSBCS(struct __crt_multibyte_data *)",
"startAddr": "0x140009b70",
"endAddr": "0x140009c00",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "?try_cor_exit_process@@YAXI@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "void __cdecl try_cor_exit_process(unsigned int)",
"startAddr": "0x140005314",
"endAddr": "0x14000536f",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "?x_ismbbtype_l@@YAHPEAU__crt_locale_pointers@@IHH@Z",
"callingConvention": "cdecl",
"fncType": "staticallyLinked",
"demangledName": "int __cdecl x_ismbbtype_l(struct __crt_locale_pointers *, unsigned int, int, int)",
"startAddr": "0x14000a394",
"endAddr": "0x14000a409",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "CloseHandle",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL CloseHandle(_In_ HANDLE hObject);",
"startAddr": "0x140013210",
"endAddr": "0x140013211",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hObject",
"realName": "hObject",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "CompareStringW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "int CompareStringW(_In_ LCID Locale, _In_ DWORD dwCmpFlags, PCNZWCH lpString1, _In_ int cchCount1, PCNZWCH lpString2, _In_ int cchCount2);",
"startAddr": "0x140013148",
"endAddr": "0x140013149",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "Locale",
"realName": "Locale",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "dwCmpFlags",
"realName": "dwCmpFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpString1",
"realName": "lpString1",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "cchCount1",
"realName": "cchCount1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpString2",
"realName": "lpString2",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "cchCount2",
"realName": "cchCount2",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "CreateFileW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "HANDLE CreateFileW(_In_ LPCWSTR lpFileName, _In_ DWORD dwDesiredAccess, _In_ DWORD dwShareMode, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _In_ DWORD dwCreationDisposition, _In_ DWORD dwFlagsAndAttributes, _In_opt_ HANDLE hTemplateFile);",
"startAddr": "0x140013218",
"endAddr": "0x140013219",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpFileName",
"realName": "lpFileName",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "dwDesiredAccess",
"realName": "dwDesiredAccess",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "dwShareMode",
"realName": "dwShareMode",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpSecurityAttributes",
"realName": "lpSecurityAttributes",
"isFromDebug": true,
"type": {
"llvmIr": "%_SECURITY_ATTRIBUTES*"
}
},
{
"name": "dwCreationDisposition",
"realName": "dwCreationDisposition",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "dwFlagsAndAttributes",
"realName": "dwFlagsAndAttributes",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "hTemplateFile",
"realName": "hTemplateFile",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "DeleteCriticalSection",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID DeleteCriticalSection(_Inout_ LPCRITICAL_SECTION lpCriticalSection);",
"startAddr": "0x1400130a0",
"endAddr": "0x1400130a1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpCriticalSection",
"realName": "lpCriticalSection",
"isFromDebug": true,
"type": {
"llvmIr": "%_RTL_CRITICAL_SECTION*"
}
}
]
},
{
"name": "EnterCriticalSection",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID EnterCriticalSection(_Inout_ LPCRITICAL_SECTION lpCriticalSection);",
"startAddr": "0x140013090",
"endAddr": "0x140013091",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpCriticalSection",
"realName": "lpCriticalSection",
"isFromDebug": true,
"type": {
"llvmIr": "%_RTL_CRITICAL_SECTION*"
}
}
]
},
{
"name": "ExitProcess",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID ExitProcess(_In_ UINT uExitCode);",
"startAddr": "0x140013110",
"endAddr": "0x140013111",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "uExitCode",
"realName": "uExitCode",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "FindClose",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL FindClose(_Inout_ HANDLE hFindFile);",
"startAddr": "0x140013160",
"endAddr": "0x140013161",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hFindFile",
"realName": "hFindFile",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "FindFirstFileExW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "HANDLE FindFirstFileExW(_In_ LPCWSTR lpFileName, _In_ FINDEX_INFO_LEVELS fInfoLevelId, LPVOID lpFindFileData, _In_ FINDEX_SEARCH_OPS fSearchOp, LPVOID lpSearchFilter, _In_ DWORD dwAdditionalFlags);",
"startAddr": "0x140013168",
"endAddr": "0x140013169",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpFileName",
"realName": "lpFileName",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "fInfoLevelId",
"realName": "fInfoLevelId",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "lpFindFileData",
"realName": "lpFindFileData",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "fSearchOp",
"realName": "fSearchOp",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "lpSearchFilter",
"realName": "lpSearchFilter",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "dwAdditionalFlags",
"realName": "dwAdditionalFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "FindNextFileW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL FindNextFileW(_In_ HANDLE hFindFile, _Out_ LPWIN32_FIND_DATAW lpFindFileData);",
"startAddr": "0x140013170",
"endAddr": "0x140013171",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hFindFile",
"realName": "hFindFile",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "lpFindFileData",
"realName": "lpFindFileData",
"isFromDebug": true,
"type": {
"llvmIr": "%_WIN32_FIND_DATAW*"
}
}
]
},
{
"name": "FlushFileBuffers",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL FlushFileBuffers(_In_ HANDLE hFile);",
"startAddr": "0x1400131d8",
"endAddr": "0x1400131d9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hFile",
"realName": "hFile",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "FreeEnvironmentStringsW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL FreeEnvironmentStringsW(_In_ LPWCH penv);",
"startAddr": "0x1400131b0",
"endAddr": "0x1400131b1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "penv",
"realName": "penv",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
}
]
},
{
"name": "FreeLibrary",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL FreeLibrary(_In_ HMODULE hLibModule);",
"startAddr": "0x1400130d0",
"endAddr": "0x1400130d1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hLibModule",
"realName": "hLibModule",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "GetACP",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "UINT GetACP(void);",
"startAddr": "0x140013180",
"endAddr": "0x140013181",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetCPInfo",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL GetCPInfo(_In_ UINT CodePage, _Out_ LPCPINFO lpCPInfo);",
"startAddr": "0x140013190",
"endAddr": "0x140013191",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "CodePage",
"realName": "CodePage",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpCPInfo",
"realName": "lpCPInfo",
"isFromDebug": true,
"type": {
"llvmIr": "%_cpinfo*"
}
}
]
},
{
"name": "GetCommandLineA",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "LPSTR GetCommandLineA(VOID);",
"startAddr": "0x140013128",
"endAddr": "0x140013129",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetCommandLineW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "LPWSTR GetCommandLineW(VOID);",
"startAddr": "0x140013130",
"endAddr": "0x140013131",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetConsoleMode",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL GetConsoleMode(_In_ HANDLE hConsoleHandle, _Out_ LPDWORD lpMode);",
"startAddr": "0x1400131e8",
"endAddr": "0x1400131e9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hConsoleHandle",
"realName": "hConsoleHandle",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "lpMode",
"realName": "lpMode",
"isFromDebug": true,
"type": {
"llvmIr": "i32*"
}
}
]
},
{
"name": "GetConsoleOutputCP",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "UINT GetConsoleOutputCP(VOID);",
"startAddr": "0x1400131e0",
"endAddr": "0x1400131e1",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetCurrentProcess",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "HANDLE GetCurrentProcess(VOID);",
"startAddr": "0x140013108",
"endAddr": "0x140013109",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetCurrentProcessId",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "DWORD GetCurrentProcessId(VOID);",
"startAddr": "0x140013008",
"endAddr": "0x140013009",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetCurrentThreadId",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "DWORD GetCurrentThreadId(VOID);",
"startAddr": "0x140013010",
"endAddr": "0x140013011",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetEnvironmentStringsW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "LPWCH GetEnvironmentStringsW(void);",
"startAddr": "0x1400131a8",
"endAddr": "0x1400131a9",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetFileSizeEx",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL GetFileSizeEx(_In_ HANDLE hFile, _Out_ PLARGE_INTEGER lpFileSize);",
"startAddr": "0x1400131f0",
"endAddr": "0x1400131f1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hFile",
"realName": "hFile",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "lpFileSize",
"realName": "lpFileSize",
"isFromDebug": true,
"type": {
"llvmIr": "%_LARGE_INTEGER*"
}
}
]
},
{
"name": "GetFileType",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "DWORD GetFileType(_In_ HANDLE hFile);",
"startAddr": "0x140013158",
"endAddr": "0x140013159",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hFile",
"realName": "hFile",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "GetLastError",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "DWORD GetLastError(VOID);",
"startAddr": "0x140013080",
"endAddr": "0x140013081",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetModuleFileNameW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "DWORD GetModuleFileNameW(_In_opt_ HMODULE hModule, LPWSTR lpFilename, _In_ DWORD nSize);",
"startAddr": "0x140013100",
"endAddr": "0x140013101",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hModule",
"realName": "hModule",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "lpFilename",
"realName": "lpFilename",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "nSize",
"realName": "nSize",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "GetModuleHandleExW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL GetModuleHandleExW(_In_ DWORD dwFlags, _In_opt_ LPCWSTR lpModuleName, _Out_ HMODULE * phModule);",
"startAddr": "0x140013120",
"endAddr": "0x140013121",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "dwFlags",
"realName": "dwFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpModuleName",
"realName": "lpModuleName",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "phModule",
"realName": "phModule",
"isFromDebug": true,
"type": {
"llvmIr": "i64**"
}
}
]
},
{
"name": "GetModuleHandleW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "HMODULE GetModuleHandleW(_In_opt_ LPCWSTR lpModuleName);",
"startAddr": "0x140013068",
"endAddr": "0x140013069",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpModuleName",
"realName": "lpModuleName",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
}
]
},
{
"name": "GetOEMCP",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "UINT GetOEMCP(void);",
"startAddr": "0x140013188",
"endAddr": "0x140013189",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetProcAddress",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "FARPROC GetProcAddress(_In_ HMODULE hModule, _In_ LPCSTR lpProcName);",
"startAddr": "0x1400130d8",
"endAddr": "0x1400130d9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hModule",
"realName": "hModule",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "lpProcName",
"realName": "lpProcName",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
}
]
},
{
"name": "GetProcessHeap",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "HANDLE GetProcessHeap(VOID);",
"startAddr": "0x1400131d0",
"endAddr": "0x1400131d1",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "GetStartupInfoW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID GetStartupInfoW(_Out_ LPSTARTUPINFOW lpStartupInfo);",
"startAddr": "0x140013058",
"endAddr": "0x140013059",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpStartupInfo",
"realName": "lpStartupInfo",
"isFromDebug": true,
"type": {
"llvmIr": "%_STARTUPINFOW*"
}
}
]
},
{
"name": "GetStdHandle",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "HANDLE GetStdHandle(_In_ DWORD nStdHandle);",
"startAddr": "0x1400130f0",
"endAddr": "0x1400130f1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "nStdHandle",
"realName": "nStdHandle",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "GetStringTypeW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL GetStringTypeW(_In_ DWORD dwInfoType, LPCWCH lpSrcStr, _In_ int cchSrc, _Out_ LPWORD lpCharType);",
"startAddr": "0x1400131c8",
"endAddr": "0x1400131c9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "dwInfoType",
"realName": "dwInfoType",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpSrcStr",
"realName": "lpSrcStr",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "cchSrc",
"realName": "cchSrc",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpCharType",
"realName": "lpCharType",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
}
]
},
{
"name": "GetSystemTimeAsFileTime",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID GetSystemTimeAsFileTime(_Out_ LPFILETIME lpSystemTimeAsFileTime);",
"startAddr": "0x140013018",
"endAddr": "0x140013019",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpSystemTimeAsFileTime",
"realName": "lpSystemTimeAsFileTime",
"isFromDebug": true,
"type": {
"llvmIr": "%_FILETIME*"
}
}
]
},
{
"name": "HeapAlloc",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "LPVOID HeapAlloc(_In_ HANDLE hHeap, _In_ DWORD dwFlags, _In_ SIZE_T dwBytes);",
"startAddr": "0x140013138",
"endAddr": "0x140013139",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hHeap",
"realName": "hHeap",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "dwFlags",
"realName": "dwFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "dwBytes",
"realName": "dwBytes",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "HeapFree",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL HeapFree(_Inout_ HANDLE hHeap, _In_ DWORD dwFlags, LPVOID lpMem);",
"startAddr": "0x140013140",
"endAddr": "0x140013141",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hHeap",
"realName": "hHeap",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "dwFlags",
"realName": "dwFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpMem",
"realName": "lpMem",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "HeapReAlloc",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "LPVOID HeapReAlloc(_Inout_ HANDLE hHeap, _In_ DWORD dwFlags, LPVOID lpMem, _In_ SIZE_T dwBytes);",
"startAddr": "0x140013208",
"endAddr": "0x140013209",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hHeap",
"realName": "hHeap",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "dwFlags",
"realName": "dwFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpMem",
"realName": "lpMem",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "dwBytes",
"realName": "dwBytes",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "HeapSize",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "SIZE_T HeapSize(_In_ HANDLE hHeap, _In_ DWORD dwFlags, _In_ LPCVOID lpMem);",
"startAddr": "0x140013200",
"endAddr": "0x140013201",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hHeap",
"realName": "hHeap",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "dwFlags",
"realName": "dwFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpMem",
"realName": "lpMem",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "InitializeCriticalSectionAndSpinCount",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL InitializeCriticalSectionAndSpinCount(_Out_ LPCRITICAL_SECTION lpCriticalSection, _In_ DWORD dwSpinCount);",
"startAddr": "0x1400130a8",
"endAddr": "0x1400130a9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpCriticalSection",
"realName": "lpCriticalSection",
"isFromDebug": true,
"type": {
"llvmIr": "%_RTL_CRITICAL_SECTION*"
}
},
{
"name": "dwSpinCount",
"realName": "dwSpinCount",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "InitializeSListHead",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID InitializeSListHead(_Out_ PSLIST_HEADER ListHead);",
"startAddr": "0x140013020",
"endAddr": "0x140013021",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "ListHead",
"realName": "ListHead",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "IsDebuggerPresent",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL IsDebuggerPresent(VOID);",
"startAddr": "0x140013040",
"endAddr": "0x140013041",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "IsProcessorFeaturePresent",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL IsProcessorFeaturePresent(_In_ DWORD ProcessorFeature);",
"startAddr": "0x140013060",
"endAddr": "0x140013061",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "ProcessorFeature",
"realName": "ProcessorFeature",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "IsValidCodePage",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL IsValidCodePage(_In_ UINT CodePage);",
"startAddr": "0x140013178",
"endAddr": "0x140013179",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "CodePage",
"realName": "CodePage",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "LCMapStringW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "int LCMapStringW(_In_ LCID Locale, _In_ DWORD dwMapFlags, LPCWSTR lpSrcStr, _In_ int cchSrc, LPWSTR lpDestStr, _In_ int cchDest);",
"startAddr": "0x140013150",
"endAddr": "0x140013151",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "Locale",
"realName": "Locale",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "dwMapFlags",
"realName": "dwMapFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpSrcStr",
"realName": "lpSrcStr",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "cchSrc",
"realName": "cchSrc",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpDestStr",
"realName": "lpDestStr",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "cchDest",
"realName": "cchDest",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "LeaveCriticalSection",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID LeaveCriticalSection(_Inout_ LPCRITICAL_SECTION lpCriticalSection);",
"startAddr": "0x140013098",
"endAddr": "0x140013099",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpCriticalSection",
"realName": "lpCriticalSection",
"isFromDebug": true,
"type": {
"llvmIr": "%_RTL_CRITICAL_SECTION*"
}
}
]
},
{
"name": "LoadLibraryExW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "HMODULE LoadLibraryExW(_In_ LPCWSTR lpLibFileName, HANDLE hFile, _In_ DWORD dwFlags);",
"startAddr": "0x1400130e0",
"endAddr": "0x1400130e1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpLibFileName",
"realName": "lpLibFileName",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "hFile",
"realName": "hFile",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "dwFlags",
"realName": "dwFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "MultiByteToWideChar",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, LPCCH lpMultiByteStr, _In_ int cbMultiByte, LPWSTR lpWideCharStr, _In_ int cchWideChar);",
"startAddr": "0x140013198",
"endAddr": "0x140013199",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "CodePage",
"realName": "CodePage",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "dwFlags",
"realName": "dwFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpMultiByteStr",
"realName": "lpMultiByteStr",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "cbMultiByte",
"realName": "cbMultiByte",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpWideCharStr",
"realName": "lpWideCharStr",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "cchWideChar",
"realName": "cchWideChar",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "QueryPerformanceCounter",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL QueryPerformanceCounter(_Out_ LARGE_INTEGER * lpPerformanceCount);",
"startAddr": "0x140013000",
"endAddr": "0x140013001",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpPerformanceCount",
"realName": "lpPerformanceCount",
"isFromDebug": true,
"type": {
"llvmIr": "%_LARGE_INTEGER*"
}
}
]
},
{
"name": "RaiseException",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID RaiseException(_In_ DWORD dwExceptionCode, _In_ DWORD dwExceptionFlags, _In_ DWORD nNumberOfArguments, const ULONG_PTR * lpArguments);",
"startAddr": "0x1400130e8",
"endAddr": "0x1400130e9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "dwExceptionCode",
"realName": "dwExceptionCode",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "dwExceptionFlags",
"realName": "dwExceptionFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "nNumberOfArguments",
"realName": "nNumberOfArguments",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpArguments",
"realName": "lpArguments",
"isFromDebug": true,
"type": {
"llvmIr": "i32*"
}
}
]
},
{
"name": "RtlCaptureContext",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID RtlCaptureContext(_Out_ PCONTEXT ContextRecord);",
"startAddr": "0x140013028",
"endAddr": "0x140013029",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "ContextRecord",
"realName": "ContextRecord",
"isFromDebug": true,
"type": {
"llvmIr": "%_CONTEXT*"
}
}
]
},
{
"name": "RtlLookupFunctionEntry",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "PRUNTIME_FUNCTION RtlLookupFunctionEntry(_In_ ULONG64 ControlPc, _Out_ PULONG64 ImageBase, _Inout_opt_ PUNWIND_HISTORY_TABLE HistoryTable);",
"startAddr": "0x140013030",
"endAddr": "0x140013031",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "ControlPc",
"realName": "ControlPc",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "ImageBase",
"realName": "ImageBase",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "HistoryTable",
"realName": "HistoryTable",
"isFromDebug": true,
"type": {
"llvmIr": "%_UNWIND_HISTORY_TABLE*"
}
}
]
},
{
"name": "RtlUnwindEx",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID RtlUnwindEx(_In_opt_ PVOID TargetFrame, _In_opt_ PVOID TargetIp, _In_opt_ PEXCEPTION_RECORD ExceptionRecord, _In_ PVOID ReturnValue, _In_ PCONTEXT ContextRecord, _In_opt_ PUNWIND_HISTORY_TABLE HistoryTable);",
"startAddr": "0x140013078",
"endAddr": "0x140013079",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "TargetFrame",
"realName": "TargetFrame",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "TargetIp",
"realName": "TargetIp",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "ExceptionRecord",
"realName": "ExceptionRecord",
"isFromDebug": true,
"type": {
"llvmIr": "%_EXCEPTION_RECORD*"
}
},
{
"name": "ReturnValue",
"realName": "ReturnValue",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "ContextRecord",
"realName": "ContextRecord",
"isFromDebug": true,
"type": {
"llvmIr": "%_CONTEXT*"
}
},
{
"name": "HistoryTable",
"realName": "HistoryTable",
"isFromDebug": true,
"type": {
"llvmIr": "%_UNWIND_HISTORY_TABLE*"
}
}
]
},
{
"name": "RtlVirtualUnwind",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "PEXCEPTION_ROUTINE RtlVirtualUnwind(_In_ ULONG HandlerType, _In_ ULONG64 ImageBase, _In_ ULONG64 ControlPc, _In_ PRUNTIME_FUNCTION FunctionEntry, _Inout_ PCONTEXT ContextRecord, _Out_ PVOID * HandlerData, _Out_ PULONG64 EstablisherFrame, _Inout_opt_ PKNONVOLATILE_CONTEXT_POINTERS ContextPointers);",
"startAddr": "0x140013038",
"endAddr": "0x140013039",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "HandlerType",
"realName": "HandlerType",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "ImageBase",
"realName": "ImageBase",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "ControlPc",
"realName": "ControlPc",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "FunctionEntry",
"realName": "FunctionEntry",
"isFromDebug": true,
"type": {
"llvmIr": "%_IMAGE_RUNTIME_FUNCTION_ENTRY*"
}
},
{
"name": "ContextRecord",
"realName": "ContextRecord",
"isFromDebug": true,
"type": {
"llvmIr": "%_CONTEXT*"
}
},
{
"name": "HandlerData",
"realName": "HandlerData",
"isFromDebug": true,
"type": {
"llvmIr": "i64**"
}
},
{
"name": "EstablisherFrame",
"realName": "EstablisherFrame",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "ContextPointers",
"realName": "ContextPointers",
"isFromDebug": true,
"type": {
"llvmIr": "%_KNONVOLATILE_CONTEXT_POINTERS*"
}
}
]
},
{
"name": "SetEnvironmentVariableW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL SetEnvironmentVariableW(_In_ LPCWSTR lpName, _In_opt_ LPCWSTR lpValue);",
"startAddr": "0x1400131b8",
"endAddr": "0x1400131b9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpName",
"realName": "lpName",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "lpValue",
"realName": "lpValue",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
}
]
},
{
"name": "SetFilePointerEx",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL SetFilePointerEx(_In_ HANDLE hFile, _In_ LARGE_INTEGER liDistanceToMove, _Out_opt_ PLARGE_INTEGER lpNewFilePointer, _In_ DWORD dwMoveMethod);",
"startAddr": "0x1400131f8",
"endAddr": "0x1400131f9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hFile",
"realName": "hFile",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "liDistanceToMove",
"realName": "liDistanceToMove",
"isFromDebug": true,
"type": {
"llvmIr": "%_LARGE_INTEGER = type { i64 }"
}
},
{
"name": "lpNewFilePointer",
"realName": "lpNewFilePointer",
"isFromDebug": true,
"type": {
"llvmIr": "%_LARGE_INTEGER*"
}
},
{
"name": "dwMoveMethod",
"realName": "dwMoveMethod",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "SetLastError",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "VOID SetLastError(_In_ DWORD dwErrCode);",
"startAddr": "0x140013088",
"endAddr": "0x140013089",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "dwErrCode",
"realName": "dwErrCode",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "SetStdHandle",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL SetStdHandle(_In_ DWORD nStdHandle, _In_ HANDLE hHandle);",
"startAddr": "0x1400131c0",
"endAddr": "0x1400131c1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "nStdHandle",
"realName": "nStdHandle",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "hHandle",
"realName": "hHandle",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "SetUnhandledExceptionFilter",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(_In_opt_ LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);",
"startAddr": "0x140013050",
"endAddr": "0x140013051",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpTopLevelExceptionFilter",
"realName": "lpTopLevelExceptionFilter",
"isFromDebug": true,
"type": {
"llvmIr": "i32 (%_EXCEPTION_POINTERS*)*"
}
}
]
},
{
"name": "TerminateProcess",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL TerminateProcess(_In_ HANDLE hProcess, _In_ UINT uExitCode);",
"startAddr": "0x140013118",
"endAddr": "0x140013119",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hProcess",
"realName": "hProcess",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "uExitCode",
"realName": "uExitCode",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "TlsAlloc",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "DWORD TlsAlloc(VOID);",
"startAddr": "0x1400130b0",
"endAddr": "0x1400130b1",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "TlsFree",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL TlsFree(_In_ DWORD dwTlsIndex);",
"startAddr": "0x1400130c8",
"endAddr": "0x1400130c9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "dwTlsIndex",
"realName": "dwTlsIndex",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "TlsGetValue",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "LPVOID TlsGetValue(_In_ DWORD dwTlsIndex);",
"startAddr": "0x1400130b8",
"endAddr": "0x1400130b9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "dwTlsIndex",
"realName": "dwTlsIndex",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "TlsSetValue",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL TlsSetValue(_In_ DWORD dwTlsIndex, _In_opt_ LPVOID lpTlsValue);",
"startAddr": "0x1400130c0",
"endAddr": "0x1400130c1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "dwTlsIndex",
"realName": "dwTlsIndex",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpTlsValue",
"realName": "lpTlsValue",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "UnhandledExceptionFilter",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "LONG UnhandledExceptionFilter(_In_ struct _EXCEPTION_POINTERS * ExceptionInfo);",
"startAddr": "0x140013048",
"endAddr": "0x140013049",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "ExceptionInfo",
"realName": "ExceptionInfo",
"isFromDebug": true,
"type": {
"llvmIr": "%_EXCEPTION_POINTERS*"
}
}
]
},
{
"name": "WideCharToMultiByte",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, LPCWCH lpWideCharStr, _In_ int cchWideChar, LPSTR lpMultiByteStr, _In_ int cbMultiByte, _In_opt_ LPCCH lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);",
"startAddr": "0x1400131a0",
"endAddr": "0x1400131a1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "CodePage",
"realName": "CodePage",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "dwFlags",
"realName": "dwFlags",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpWideCharStr",
"realName": "lpWideCharStr",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "cchWideChar",
"realName": "cchWideChar",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpMultiByteStr",
"realName": "lpMultiByteStr",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "cbMultiByte",
"realName": "cbMultiByte",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpDefaultChar",
"realName": "lpDefaultChar",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "lpUsedDefaultChar",
"realName": "lpUsedDefaultChar",
"isFromDebug": true,
"type": {
"llvmIr": "i1*"
}
}
]
},
{
"name": "WriteConsoleW",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL WriteConsoleW(_In_ HANDLE hConsoleOutput, const VOID * lpBuffer, _In_ DWORD nNumberOfCharsToWrite, _Out_opt_ LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved);",
"startAddr": "0x140013070",
"endAddr": "0x140013071",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hConsoleOutput",
"realName": "hConsoleOutput",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "lpBuffer",
"realName": "lpBuffer",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "nNumberOfCharsToWrite",
"realName": "nNumberOfCharsToWrite",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpNumberOfCharsWritten",
"realName": "lpNumberOfCharsWritten",
"isFromDebug": true,
"type": {
"llvmIr": "i32*"
}
},
{
"name": "lpReserved",
"realName": "lpReserved",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "WriteFile",
"callingConvention": "x64_os_default",
"fncType": "dynamicallyLinked",
"declarationStr": "BOOL WriteFile(_In_ HANDLE hFile, LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped);",
"startAddr": "0x1400130f8",
"endAddr": "0x1400130f9",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "hFile",
"realName": "hFile",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "lpBuffer",
"realName": "lpBuffer",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "nNumberOfBytesToWrite",
"realName": "nNumberOfBytesToWrite",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "lpNumberOfBytesWritten",
"realName": "lpNumberOfBytesWritten",
"isFromDebug": true,
"type": {
"llvmIr": "i32*"
}
},
{
"name": "lpOverlapped",
"realName": "lpOverlapped",
"isFromDebug": true,
"type": {
"llvmIr": "%_OVERLAPPED*"
}
}
]
},
{
"name": "_FindPESection",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140011d70",
"endAddr": "0x140011db4",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "_NLG_Notify",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400021f0",
"endAddr": "0x140002211",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_AppPolicyGetProcessTerminationMethodInternal",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140006640",
"endAddr": "0x14000668e",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32*"
}
}
]
},
{
"name": "__acrt_AreFileApisANSI",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140006690",
"endAddr": "0x1400066ca",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_CompareStringA",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14001103c",
"endAddr": "0x1400110c5",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_CompareStringEx",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400066cc",
"endAddr": "0x1400067a8",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_FlsAlloc",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400067a8",
"endAddr": "0x1400067f0",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_FlsFree",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400067f0",
"endAddr": "0x140006836",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_FlsGetValue",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140006838",
"endAddr": "0x14000687e",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "__acrt_FlsSetValue",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140006880",
"endAddr": "0x1400068d1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_InitializeCriticalSectionEx",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400068d4",
"endAddr": "0x140006935",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "__acrt_LCMapStringA",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000f64c",
"endAddr": "0x14000f6e2",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "arg5",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg6",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "arg7",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg8",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg9",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "__acrt_LCMapStringEx",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140006938",
"endAddr": "0x140006a14",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_LocaleNameToLCID",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140006a14",
"endAddr": "0x140006a64",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_add_locale_ref",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000b30c",
"endAddr": "0x14000b397",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_call_reportfault",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000605c",
"endAddr": "0x1400061b7",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_errno_map_os_error",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140006320",
"endAddr": "0x14000636e",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_free_locale",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000b398",
"endAddr": "0x14000b50e",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_has_user_matherr",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400048a8",
"endAddr": "0x1400048c5",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_initialize_command_line",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000542c",
"endAddr": "0x140005451",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_initialize_fma3",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400117a0",
"endAddr": "0x140011810",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_initialize_heap",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000b7b0",
"endAddr": "0x14000b7cc",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_initialize_locks",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000aa40",
"endAddr": "0x14000aa88",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_initialize_lowio$fin$0",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14001263c",
"endAddr": "0x140012654",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_initialize_multibyte",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000a05c",
"endAddr": "0x14000a0bc",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_initialize_signal_handlers",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000b978",
"endAddr": "0x14000b995",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_invoke_user_matherr",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400048d0",
"endAddr": "0x1400048fe",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32*"
}
}
]
},
{
"name": "__acrt_iob_func",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "_ACRTIMP_ALT FILE * __cdecl __acrt_iob_func(unsigned);",
"startAddr": "0x140003008",
"endAddr": "0x140003019",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "__acrt_locale_add_lc_time_reference",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000b510",
"endAddr": "0x14000b537",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_locale_free_lc_time_if_unreferenced",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000b538",
"endAddr": "0x14000b56e",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_locale_free_monetary",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000ae74",
"endAddr": "0x14000af7e",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_locale_free_numeric",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000af80",
"endAddr": "0x14000afec",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_locale_free_time",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000b044",
"endAddr": "0x14000b14c",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_locale_release_lc_time_reference",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000b570",
"endAddr": "0x14000b595",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_lock",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000aa88",
"endAddr": "0x14000aaa1",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "__acrt_lock.5",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"realName": "__acrt_lock",
"startAddr": "0x14000aadc",
"endAddr": "0x14000aaf5",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_release_locale_ref",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000b598",
"endAddr": "0x14000b640",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_uninitialize_locks",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000240c",
"endAddr": "0x140002443",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_uninitialize_locks.4",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"realName": "__acrt_uninitialize_locks",
"startAddr": "0x14000aaa4",
"endAddr": "0x14000aadb",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_uninitialize_ptd",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400023a0",
"endAddr": "0x1400023c2",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_uninitialize_ptd.2",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"realName": "__acrt_uninitialize_ptd",
"startAddr": "0x140007dc8",
"endAddr": "0x140007dea",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "__acrt_uninitialize_stdio",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000301c",
"endAddr": "0x140003077",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_uninitialize_winapi_thunks",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140006a98",
"endAddr": "0x140006ad9",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__acrt_update_locale_info",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140007dec",
"endAddr": "0x140007e1d",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_update_locale_info.3",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"realName": "__acrt_update_locale_info",
"startAddr": "0x140007e20",
"endAddr": "0x140007e51",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__acrt_update_thread_locale_data$fin$0",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14001266e",
"endAddr": "0x140012686",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__chkstk",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400121a0",
"endAddr": "0x1400121ee",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__dcrt_uninitialize_environments_nolock",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140004fd0",
"endAddr": "0x140005008",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__doserrno",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "unsigned long * __cdecl __doserrno(void);",
"startAddr": "0x140006370",
"endAddr": "0x140006390",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__pctype_func",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "const unsigned short * __pctype_func(void);",
"startAddr": "0x14000b14c",
"endAddr": "0x14000b17b",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__raise_securityfailure",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140011ef0",
"endAddr": "0x140011f24",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__scrt_acquire_startup_lock",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140001384",
"endAddr": "0x1400013bd",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__scrt_release_startup_lock",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140001530",
"endAddr": "0x140001554",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__setusermatherr",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "void __setusermatherr(_HANDLE_MATH_ERROR pf);",
"startAddr": "0x140004900",
"endAddr": "0x140004925",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "pf",
"realName": "pf",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__stdio_common_vfprintf",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "int __cdecl __stdio_common_vfprintf(_In_ unsigned __int64 Options, _Inout_ FILE * Stream, _In_z_ char const * Format, _In_opt_ _locale_t Locale, va_list ArgList);",
"startAddr": "0x140004688",
"endAddr": "0x140004713",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "Options",
"realName": "Options",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "Stream",
"realName": "Stream",
"isFromDebug": true,
"type": {
"llvmIr": "%_IO_FILE*"
}
},
{
"name": "Format",
"realName": "Format",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "Locale",
"realName": "Locale",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "ArgList",
"realName": "ArgList",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "__vcrt_freefls",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000225c",
"endAddr": "0x14000227b",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__vcrt_getptd",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000227c",
"endAddr": "0x140002298",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "__vcrt_initialize_locks",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x1400023c4",
"endAddr": "0x14000240a",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "_callnewh",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "int __cdecl _callnewh(_In_ size_t Size);",
"startAddr": "0x14000b89c",
"endAddr": "0x14000b8cb",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "Size",
"realName": "Size",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "_calloc_base",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "void * __cdecl _calloc_base(_In_ size_t Count, _In_ size_t Size);",
"startAddr": "0x1400063b0",
"endAddr": "0x140006425",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "Count",
"realName": "Count",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "Size",
"realName": "Size",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "_configthreadlocale",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "int __cdecl _configthreadlocale(_In_ int Flag);",
"startAddr": "0x140005510",
"endAddr": "0x140005579",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "Flag",
"realName": "Flag",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "_errno",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "int * __cdecl _errno(void);",
"startAddr": "0x140006390",
"endAddr": "0x1400063b0",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "_fileno",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "int __cdecl _fileno(_In_ FILE * Stream);",
"startAddr": "0x140008b98",
"endAddr": "0x140008bbe",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "Stream",
"realName": "Stream",
"isFromDebug": true,
"type": {
"llvmIr": "%_IO_FILE*"
}
}
]
},
{
"name": "_free_base",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "void __cdecl _free_base(void * Block);",
"startAddr": "0x140006428",
"endAddr": "0x140006465",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "Block",
"realName": "Block",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "_frnd",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14001190e",
"endAddr": "0x14001192d",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "_get_initial_narrow_environment",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "char ** __cdecl _get_initial_narrow_environment(void);",
"startAddr": "0x140005008",
"endAddr": "0x140005056",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "_get_printf_count_output",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "int __cdecl _get_printf_count_output(void);",
"startAddr": "0x140008bd8",
"endAddr": "0x140008bf0",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "_initterm",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "void __cdecl _initterm(_In_ _PVFV * First, _In_ _PVFV * Last);",
"startAddr": "0x140005060",
"endAddr": "0x1400050c4",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "First",
"realName": "First",
"isFromDebug": true,
"type": {
"llvmIr": "void ()**"
}
},
{
"name": "Last",
"realName": "Last",
"isFromDebug": true,
"type": {
"llvmIr": "void ()**"
}
}
]
},
{
"name": "_initterm_e",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "int __cdecl _initterm_e(_PIFV * First, _In_ _PIFV * Last);",
"startAddr": "0x1400050c4",
"endAddr": "0x140005101",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "First",
"realName": "First",
"isFromDebug": true,
"type": {
"llvmIr": "i32 ()**"
}
},
{
"name": "Last",
"realName": "Last",
"isFromDebug": true,
"type": {
"llvmIr": "i32 ()**"
}
}
]
},
{
"name": "_invalid_parameter",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "void __cdecl _invalid_parameter(wchar_t const *, wchar_t const *, wchar_t const *, _In_ unsigned int, _In_ uintptr_t);",
"startAddr": "0x1400061c0",
"endAddr": "0x140006270",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i16*"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg5",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "_log10_special",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140011810",
"endAddr": "0x140011830",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "_malloc_base",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "void * __cdecl _malloc_base(_In_ size_t Size);",
"startAddr": "0x1400070f4",
"endAddr": "0x140007152",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "Size",
"realName": "Size",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "_msize_base",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x14000f9f8",
"endAddr": "0x14000fa31",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "_query_new_handler",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "_PNH __cdecl _query_new_handler(void);",
"startAddr": "0x14000b8cc",
"endAddr": "0x14000b900",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "_query_new_handler$fin$0",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140012687",
"endAddr": "0x14001269c",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "_set_errno_from_matherr",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140011c68",
"endAddr": "0x140011c96",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "_set_fmode",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "errno_t __cdecl _set_fmode(_In_ int Mode);",
"startAddr": "0x1400053ec",
"endAddr": "0x140005429",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "Mode",
"realName": "Mode",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "_set_new_mode",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "int __cdecl _set_new_mode(_In_ int NewMode);",
"startAddr": "0x140005584",
"endAddr": "0x1400055af",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "NewMode",
"realName": "NewMode",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "_strnicmp",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "int __cdecl _strnicmp(char const * String1, char const * String2, _In_ size_t MaxCount);",
"startAddr": "0x140010bdc",
"endAddr": "0x140010c2b",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "String1",
"realName": "String1",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "String2",
"realName": "String2",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "MaxCount",
"realName": "MaxCount",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "_strnicoll_l",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "int __cdecl _strnicoll_l(char const * String1, char const * String2, _In_ size_t MaxCount, _In_opt_ _locale_t Locale);",
"startAddr": "0x14000f714",
"endAddr": "0x14000f814",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "String1",
"realName": "String1",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "String2",
"realName": "String2",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "MaxCount",
"realName": "MaxCount",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "Locale",
"realName": "Locale",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "capture_previous_context",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"startAddr": "0x140012118",
"endAddr": "0x140012189",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "ceil",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "double ceil(double);",
"startAddr": "0x140010174",
"endAddr": "0x140010236",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "double"
}
}
]
},
{
"name": "entry_point",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001370",
"endAddr": "0x140001382",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
]
},
{
"name": "free",
"callingConvention": "x64_os_default",
"fncType": "staticallyLinked",
"declarationStr": "void free(void * ptr);",
"startAddr": "0x140005b4c",
"endAddr": "0x140005b5d",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "ptr",
"realName": "ptr",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "function_140001000",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001000",
"endAddr": "0x140001017",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001020",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001020",
"endAddr": "0x14000108d",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-12",
"realName": "stack_var_-12",
"type": {
"llvmIr": "i32*"
},
"storage": {
"type": "stack",
"value": -12
}
},
{
"name": "stack_var_-24",
"realName": "stack_var_-24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -24
}
},
{
"name": "stack_var_-32",
"realName": "stack_var_-32",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -32
}
},
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-72",
"realName": "stack_var_-72",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -72
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_32",
"realName": "stack_var_32",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 32
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001090",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001090",
"endAddr": "0x140001098",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_1400010a0",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400010a0",
"endAddr": "0x14000110f",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-104",
"realName": "stack_var_-104",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -104
}
},
{
"name": "stack_var_-16",
"realName": "stack_var_-16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -16
}
},
{
"name": "stack_var_-24",
"realName": "stack_var_-24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -24
}
},
{
"name": "stack_var_-32",
"realName": "stack_var_-32",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -32
}
},
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-48",
"realName": "stack_var_-48",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -48
}
},
{
"name": "stack_var_-56",
"realName": "stack_var_-56",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -56
}
},
{
"name": "stack_var_-64",
"realName": "stack_var_-64",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -64
}
},
{
"name": "stack_var_-72",
"realName": "stack_var_-72",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -72
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001110",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001110",
"endAddr": "0x1400011d8",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_-80",
"realName": "stack_var_-80",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -80
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
]
},
{
"name": "function_1400011d8",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400011d8",
"endAddr": "0x1400011f1",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
]
},
{
"name": "function_1400011f4",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400011f4",
"endAddr": "0x140001370",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-24",
"realName": "stack_var_-24",
"type": {
"llvmIr": "i8*"
},
"storage": {
"type": "stack",
"value": -24
}
},
{
"name": "stack_var_-56",
"realName": "stack_var_-56",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -56
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_32",
"realName": "stack_var_32",
"type": {
"llvmIr": "i8*"
},
"storage": {
"type": "stack",
"value": 32
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
]
},
{
"name": "function_1400013c0",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400013c0",
"endAddr": "0x140001409",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_14000140c",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x14000140c",
"endAddr": "0x140001498",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001498",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001498",
"endAddr": "0x140001529",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-24",
"realName": "stack_var_-24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -24
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001529",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001529",
"endAddr": "0x14000152b",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_14000152b",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x14000152b",
"endAddr": "0x140001530",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "function_140001554",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001554",
"endAddr": "0x14000157d",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "function_140001580",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001580",
"endAddr": "0x1400015ba",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_1400015bc",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400015bc",
"endAddr": "0x1400015d3",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_1400015d4",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400015d4",
"endAddr": "0x140001680",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_32",
"realName": "stack_var_32",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 32
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
]
},
{
"name": "function_140001680",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001680",
"endAddr": "0x140001683",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_140001684",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001684",
"endAddr": "0x14000168a",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_14000168c",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x14000168c",
"endAddr": "0x140001692",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_140001694",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001694",
"endAddr": "0x1400016a2",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "ListHead",
"realName": "ListHead",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
}
]
},
{
"name": "function_1400016a4",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400016a4",
"endAddr": "0x1400016a7",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_1400016a8",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400016a8",
"endAddr": "0x1400016ab",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_1400016ac",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400016ac",
"endAddr": "0x1400016b4",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_1400016b4",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400016b4",
"endAddr": "0x1400016cf",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
]
},
{
"name": "function_1400016d0",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400016d0",
"endAddr": "0x1400016dc",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_1400016dc",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400016dc",
"endAddr": "0x1400016e4",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_1400016e4",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400016e4",
"endAddr": "0x1400016ec",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_1400016ec",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400016ec",
"endAddr": "0x1400016f4",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_1400016f4",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400016f4",
"endAddr": "0x14000183f",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-1088",
"realName": "stack_var_-1088",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1088
}
},
{
"name": "stack_var_-1224",
"realName": "stack_var_-1224",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1224
}
},
{
"name": "stack_var_-1240",
"realName": "stack_var_-1240",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1240
}
},
{
"name": "stack_var_-1384",
"realName": "stack_var_-1384",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1384
}
},
{
"name": "stack_var_-1396",
"realName": "stack_var_-1396",
"type": {
"llvmIr": "i32*"
},
"storage": {
"type": "stack",
"value": -1396
}
},
{
"name": "stack_var_-1400",
"realName": "stack_var_-1400",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1400
}
},
{
"name": "stack_var_-1408",
"realName": "stack_var_-1408",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1408
}
},
{
"name": "stack_var_-1416",
"realName": "stack_var_-1416",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1416
}
},
{
"name": "stack_var_-1424",
"realName": "stack_var_-1424",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1424
}
},
{
"name": "stack_var_-1432",
"realName": "stack_var_-1432",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1432
}
},
{
"name": "stack_var_-1440",
"realName": "stack_var_-1440",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1440
}
},
{
"name": "stack_var_-1448",
"realName": "stack_var_-1448",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1448
}
},
{
"name": "stack_var_-1480",
"realName": "stack_var_-1480",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1480
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_-992",
"realName": "stack_var_-992",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -992
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_32",
"realName": "stack_var_32",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 32
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001840",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001840",
"endAddr": "0x140001845",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_140001848",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001848",
"endAddr": "0x140001899",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_14000189c",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x14000189c",
"endAddr": "0x1400018aa",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpTopLevelExceptionFilter",
"realName": "lpTopLevelExceptionFilter",
"isFromDebug": true,
"type": {
"llvmIr": "i32 (%_EXCEPTION_POINTERS*)*"
}
}
]
},
{
"name": "function_1400018ac",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400018ac",
"endAddr": "0x140001908",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001908",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001908",
"endAddr": "0x140001944",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
]
},
{
"name": "function_140001944",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001944",
"endAddr": "0x140001980",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
]
},
{
"name": "function_140001980",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001980",
"endAddr": "0x140001b2c",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-12",
"realName": "stack_var_-12",
"type": {
"llvmIr": "i32*"
},
"storage": {
"type": "stack",
"value": -12
}
},
{
"name": "stack_var_-16",
"realName": "stack_var_-16",
"type": {
"llvmIr": "i32*"
},
"storage": {
"type": "stack",
"value": -16
}
},
{
"name": "stack_var_-20",
"realName": "stack_var_-20",
"type": {
"llvmIr": "i32*"
},
"storage": {
"type": "stack",
"value": -20
}
},
{
"name": "stack_var_-24",
"realName": "stack_var_-24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -24
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001b2c",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001b2c",
"endAddr": "0x140001b38",
"returnType": {
"llvmIr": "i32"
}
},
{
"name": "function_140001b40",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001b40",
"endAddr": "0x140001d37",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-104",
"realName": "stack_var_-104",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -104
}
},
{
"name": "stack_var_-16",
"realName": "stack_var_-16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -16
}
},
{
"name": "stack_var_-24",
"realName": "stack_var_-24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -24
}
},
{
"name": "stack_var_-32",
"realName": "stack_var_-32",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -32
}
},
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-48",
"realName": "stack_var_-48",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -48
}
},
{
"name": "stack_var_-56",
"realName": "stack_var_-56",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -56
}
},
{
"name": "stack_var_-64",
"realName": "stack_var_-64",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -64
}
},
{
"name": "stack_var_-72",
"realName": "stack_var_-72",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -72
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001d38",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001d38",
"endAddr": "0x140001d60",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
]
},
{
"name": "function_140001d60",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001d60",
"endAddr": "0x140001d79",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "function_140001d7c",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001d7c",
"endAddr": "0x140001de9",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-72",
"realName": "stack_var_-72",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -72
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i8*"
},
"storage": {
"type": "stack",
"value": 16
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001dec",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001dec",
"endAddr": "0x140001def",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001df0",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001df0",
"endAddr": "0x140001e02",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
]
},
{
"name": "function_140001e04",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001e04",
"endAddr": "0x140001e16",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
]
},
{
"name": "function_140001e30",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001e30",
"endAddr": "0x140001e40",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140001e50",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140001e50",
"endAddr": "0x14000219b",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_14000219b",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x14000219b",
"endAddr": "0x1400021d8",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002220",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002220",
"endAddr": "0x140002221",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002224",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002224",
"endAddr": "0x14000225b",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002298",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002298",
"endAddr": "0x140002357",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
]
},
{
"name": "function_140002358",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002358",
"endAddr": "0x14000239f",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
]
},
{
"name": "function_140002444",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002444",
"endAddr": "0x140002592",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-16",
"realName": "stack_var_-16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -16
}
},
{
"name": "stack_var_-24",
"realName": "stack_var_-24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -24
}
},
{
"name": "stack_var_-32",
"realName": "stack_var_-32",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -32
}
},
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-72",
"realName": "stack_var_-72",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -72
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i8*"
}
},
{
"name": "arg5",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002594",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002594",
"endAddr": "0x1400025d9",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_1400025dc",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400025dc",
"endAddr": "0x140002622",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002624",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002624",
"endAddr": "0x14000266a",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
}
]
},
{
"name": "function_14000266c",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x14000266c",
"endAddr": "0x1400026bd",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i32"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_1400026c0",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400026c0",
"endAddr": "0x140002721",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002740",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002740",
"endAddr": "0x140002750",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-16",
"realName": "stack_var_-16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -16
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002760",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002760",
"endAddr": "0x140002dd5",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002df0",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002df0",
"endAddr": "0x140002e30",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i32*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002e40",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002e40",
"endAddr": "0x140002e6a",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i32*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002e70",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002e70",
"endAddr": "0x140002e96",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002ea0",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002ea0",
"endAddr": "0x140002ee7",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_32",
"realName": "stack_var_32",
"type": {
"llvmIr": "i32*"
},
"storage": {
"type": "stack",
"value": 32
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140002ee8",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140002ee8",
"endAddr": "0x140003007",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_32",
"realName": "stack_var_32",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 32
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
]
},
{
"name": "function_140003078",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140003078",
"endAddr": "0x140003083",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpCriticalSection",
"realName": "lpCriticalSection",
"isFromDebug": true,
"type": {
"llvmIr": "%_RTL_CRITICAL_SECTION*"
}
}
]
},
{
"name": "function_140003084",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140003084",
"endAddr": "0x14000308f",
"returnType": {
"llvmIr": "i32"
},
"parameters": [
{
"name": "lpCriticalSection",
"realName": "lpCriticalSection",
"isFromDebug": true,
"type": {
"llvmIr": "%_RTL_CRITICAL_SECTION*"
}
}
]
},
{
"name": "function_140003090",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140003090",
"endAddr": "0x1400030cd",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_32",
"realName": "stack_var_32",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 32
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
]
},
{
"name": "function_1400030d0",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400030d0",
"endAddr": "0x140003176",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140003178",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140003178",
"endAddr": "0x1400031ff",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140003200",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140003200",
"endAddr": "0x14000328d",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_140003290",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x140003290",
"endAddr": "0x14000331b",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_24",
"realName": "stack_var_24",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 24
}
},
{
"name": "stack_var_32",
"realName": "stack_var_32",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 32
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg3",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
},
{
"name": "arg4",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_14000331c",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x14000331c",
"endAddr": "0x1400033b7",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-40",
"realName": "stack_var_-40",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -40
}
},
{
"name": "stack_var_-8",
"realName": "stack_var_-8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -8
}
},
{
"name": "stack_var_0",
"realName": "stack_var_0",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 0
}
},
{
"name": "stack_var_16",
"realName": "stack_var_16",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 16
}
},
{
"name": "stack_var_8",
"realName": "stack_var_8",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": 8
}
}
],
"parameters": [
{
"name": "arg1",
"isFromDebug": true,
"type": {
"llvmIr": "i64*"
}
},
{
"name": "arg2",
"isFromDebug": true,
"type": {
"llvmIr": "i64"
}
}
]
},
{
"name": "function_1400033b8",
"callingConvention": "x64_os_default",
"fncType": "decompilerDefined",
"startAddr": "0x1400033b8",
"endAddr": "0x1400034e5",
"returnType": {
"llvmIr": "i32"
},
"locals": [
{
"name": "stack_var_-1000",
"realName": "stack_var_-1000",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1000
}
},
{
"name": "stack_var_-1108",
"realName": "stack_var_-1108",
"type": {
"llvmIr": "i8*"
},
"storage": {
"type": "stack",
"value": -1108
}
},
{
"name": "stack_var_-1112",
"realName": "stack_var_-1112",
"type": {
"llvmIr": "i32*"
},
"storage": {
"type": "stack",
"value": -1112
}
},
{
"name": "stack_var_-1128",
"realName": "stack_var_-1128",
"type": {
"llvmIr": "i16*"
},
"storage": {
"type": "stack",
"value": -1128
}
},
{
"name": "stack_var_-1136",
"realName": "stack_var_-1136",
"type": {
"llvmIr": "i32*"
},
"storage": {
"type": "stack",
"value": -1136
}
},
{
"name": "stack_var_-1144",
"realName": "stack_var_-1144",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1144
}
},
{
"name": "stack_var_-1152",
"realName": "stack_var_-1152",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1152
}
},
{
"name": "stack_var_-1160",
"realName": "stack_var_-1160",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1160
}
},
{
"name": "stack_var_-1168",
"realName": "stack_var_-1168",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1168
}
},
{
"name": "stack_var_-1176",
"realName": "stack_var_-1176",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1176
}
},
{
"name": "stack_var_-1184",
"realName": "stack_var_-1184",
"type": {
"llvmIr": "i64*"
},
"storage": {
"type": "stack",
"value": -1184
}
},
{
"name": "stack_var_-1192",
"realName": "stack_var_-1192",
"type": {
"llvmIr": "i64*"
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

@raspiduino
Copy link
Author

In case the post is removed, here is the backup:


So my idea is to "lift" 64-bits Windows executable to LLVM bitcode (or whatever is higher than assembly) and then compile it back to 32-bit executable.

I found that RetDec and McSema can lift PE binary to LLVM IR (and optionally C), but McSema requires IDA pro so I haven't tried it yet.

I have installed MSVC v143 and Windows SDK version 10.0.19041.0:

vs

Clang version:

clang version 13.0.1 (https://github.com/llvm/llvm-project 75e33f71c2dae584b13a7d1186ae0a038ba98838)
Target: x86_64-pc-windows-msvc
Thread model: posix

So I compile this Hello World code in C using Clang:

#include <stdio.h>

int main()
{
        printf("Hello, world!\n");
}

then clang hello.c -o hello.exe

Check hello.exe file type with WSL:

$ file hello.exe
hello.exe: PE32+ executable (console) x86-64, for MS Windows

You can download it here.

Then I use RetDec to lift it to LLVM IR:

python retdec-decompiler.py --no-memory-limit hello.exe

Output: here

After that we get:

files

Compile bitcode back to executable:

clang hello.exe.bc -m32 -v -Wl,/SUBSYSTEM:CONSOLE -Wl,/errorlimit:0 -fuse-ld=lld -o hello.x86.exe

Output: here

I guess functions like _WriteConsoleW are Win32 APIs, but ___decompiler_undefined_function_0 might be generated from the decompiler by some way.

Also, the decompiled code has no main function, but it had entry_point function. From hello.exe.ll:

hello.exe.ll

hello.exe.c also has entry_point instead of main:

hello.exe.c

And also, hello.exe.c doesn't have ___decompiler_undefined_function_0

I also tried running the bitcode with lli:

lli --entry-function=entry_point hello.exe.bc

Output: here

Here is the link to the files.

How to make this compile? Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment