Function at 0x1001a923
Capabilities:
Get system information on windows
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
push ebx
push edi
push 5
mov ebx, ecx
mov dword [ebp - 0x40], edx
pop ecx
mov dword [ebp - 0x14], ecx
push 2
mov dword [ebp - 0xc], 9
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x10], 0
pop edi
jmp 0x1001a960
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x9c], 0xfffa
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1001a94f
mov dword [ebp - 0x14], 0
jmp 0x1001a97f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x9c], 0x297
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1001a96e
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0x9c]
cmp dword [ebp - 0xc], eax
jl 0x1001a995
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebx + 0x10], 0
mov dword [ebp - 0x14], eax
jne 0x1001a9b1
xor al, al
jmp 0x1001b931
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x1c], ecx
push esi
mov dword [ebp - 0x20], 0xb364
mov dword [ebp - 0x10], 0xe
push 1
pop esi
cmp dword [ebp - 0x10], edi
jne 0x1001ab1b
xor ebx, ebx
inc ebx
mov dword [ebp - 0x14], 0xfffffff8
mov dword [ebp - 0x18], 0
jmp 0x1001a9f7
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x6c], 6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x1001a9e9
mov dword [ebp - 0x14], 0xf
jmp 0x1001aad4
mov dword [ebp - 0x18], 0xfffffffc
mov dword [ebp - 0x18], 0xfffffff3
jmp 0x1001aac7
mov dword [ebp - 8], 0xaafe30f5
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 8], 0
cmp dword [ebp - 8], 0
jl 0x1001aac4
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0xc], ebx
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x1001aa62
push 0x2639
push 0
push 0x1d1f
push 0
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x18], 0
jne 0x1001aa91
mov dword [ebp - 0x1c], 0x3f5e
xor edx, edx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setle dl
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x99da
jl 0x1001aa8e
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x6c], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x18]
cmp eax, ebx
setge cl
add ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
add eax, 0x7ff0b2b2
add eax, ecx
mov dword [ebp - 0x24], eax
dec dword [ebp - 8]
jns 0x1001aa3a
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffea
jge 0x1001aa1b
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe7
jg 0x1001aa08
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
cmp eax, 0xbc46
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x20]
setg cl
imul ecx, ecx, 0x67c8
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setge dl
sub eax, edx
mov dword [ebp - 0x14], eax
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
je 0x1001a9d9
mov ebx, dword [ebp - 0x2c]
xor esi, esi
inc esi
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x1001ab2d
push 0
call dword [sym.imp.USER32.dll_GetMenuItemCount]
lea eax, [ebp - 0x40]
push eax
push 0
call fcn.1001d24f
pop ecx
xor edx, edx
pop ecx
mov dword [ebp - 0x10], edx
jmp 0x1001ab4e
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x150], esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1001ab41
mov byte [ebp - 1], dl
cmp byte [ebp - 1], dl
je 0x1001ab71
push 0x1352
push edx
push edx
push 0x1fda
push edx
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
xor edx, edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x1001ab89
push 0x21bd
push edx
push edx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
xor edx, edx
xor ecx, ecx
inc ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ecx
push 4
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x84], 0xfffffff8
pop esi
jmp 0x1001acbe
mov dword [ebp - 0x10], edx
jmp 0x1001abcd
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x58], 0x25260
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1001abbf
mov dword [ebp - 0x58], edx
cmp dword [ebp - 0x58], 0x16
je 0x1001acb3
mov dword [ebp - 0x20], 0xedad94e8
cmp dword [ebp - 0x80], edx
je 0x1001ac0a
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x1001abff
push 0x113a
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [ebp - 0x84]
jmp 0x1001aca0
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], 0xd
jmp 0x1001ac87
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x10], edx
jmp 0x1001ac33
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x144], 0xd0da0bdb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x1001ac22
mov dword [ebp - 0x140], 0xcc2443ac
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 0xfffffff0
jl 0x1001ac84
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x1001ac73
push edx
push 0x1fd4
push edx
push 0x21ce
push 0x2644
push edx
push 0x3e7
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
xor edx, edx
cmp dword [ebp - 0x20], edx
jne 0x1001ac81
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffff0
jge 0x1001ac4b
xor ecx, ecx
inc ecx
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xa
jge 0x1001ac1a
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x1001aca0
push edx
push edx
push edx
push edx
call dword [sym.imp.KERNEL32.dll_EnumCalendarInfoW]
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 0x16
push 0
pop edx
push 1
pop ecx
jne 0x1001abdf
cmp dword [ebp - 0x1c], edx
jne 0x1001accb
dec dword [ebp - 0x84]
cmp dword [ebp - 0x84], 0xfffffff4
jl 0x1001abba
mov dword [ebp - 0x14], 0x4a8b108f
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], 0xfd41e559
mov dword [ebp - 0x24], edx
cmp dword [ebp - 8], edx
je 0x1001adbd
mov dword [ebp - 0x10], 0xb4c8f0d0
mov dword [ebp - 0x18], 0xfffffffc
mov dword [ebp - 0xc], edx
mov dword [ebp - 0xc], esi
mov dword [ebp - 0xc], edx
jmp 0x1001ad12
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x134], 0xfffffffd
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x1001ad01
cmp dword [ebp - 8], edx
je 0x1001ad8c
inc dword [ebp - 0x10]
je 0x1001ad70
cmp dword [ebp - 0x18], edx
jne 0x1001ad46
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jg 0x1001ad35
cmp dword [ebp - 0x24], edx
jne 0x1001ad35
mov ecx, edx
mov eax, dword [ebp - 0x10]
add eax, ecx
cmp eax, dword [ebp - 0x24]
jne 0x1001ad46
xor esi, esi
mov eax, edx
inc esi
jmp 0x1001ad4b
xor esi, esi
inc esi
mov eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 8]
jle 0x1001ad62
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
jmp 0x1001ad73
xor esi, esi
inc esi
mov ecx, dword [ebp - 0x10]
xor edx, edx
mov eax, dword [ebp - 8]
cmp eax, ecx
setne dl
neg edx
je 0x1001ad88
mov ecx, esi
jmp 0x1001ad91
xor edx, edx
jmp 0x1001ad8f
xor esi, esi
inc esi
mov ecx, edx
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], edx
jne 0x1001adb2
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x130], esi
jmp 0x1001ae06
mov dword [ebp - 0x20], edx
mov dword [ebp - 0xc], edx
jmp 0x1001add2
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x124], edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x1001adc5
mov dword [ebp - 8], edx
cmp dword [ebp - 8], ecx
jg 0x1001ae03
mov dword [ebp - 0x20], 0x2c298c24
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x1001adfe
push edx
push edx
push edx
push edx
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
xor ecx, ecx
xor edx, edx
inc ecx
inc dword [ebp - 8]
jmp 0x1001adda
xor esi, esi
inc esi
mov dword [ebp - 0x20], 0xecdc0f1f
mov dword [ebp - 0xa0], 0x38140a97
mov dword [ebp - 0x10], 0x1928c176
mov dword [ebp - 0x20], 0x3b6f9b69
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0xc], edx
jmp 0x1001ae3e
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xf0], 0xfecf7921
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x1001ae2d
mov dword [ebp - 0x10], edx
jmp 0x1001ae96
mov dword [ebp - 0x18], 0x74006310
mov dword [ebp - 0x1c], 0x6270e7ad
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
setle dl
mov dword [ebp - 0xec], edx
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
add eax, 0xffff9e3e
add eax, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
inc dword [ebp - 0x10]
xor edx, edx
cmp dword [ebp - 0x10], edi
jne 0x1001ae48
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setge dl
imul eax, dword [ebp - 0x10], 0xd94b
xor ecx, ecx
sub eax, edx
sub eax, dword [ebp - 0x14]
cmp eax, 0x5ce96b77
setge cl
xor eax, eax
cmp ecx, 5
setg al
add eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x14]
je 0x1001b46b
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], 0x532fe223
mov dword [ebp - 0x14], 0x18f4c6f4
mov dword [ebp - 0x18], 0xfffc
mov dword [ebp - 0x24], 0x90eb1f0c
mov dword [ebp - 8], ecx
jmp 0x1001af12
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x7c], 0xb9b5
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1001af04
push 3
mov dword [ebp - 8], ecx
pop edx
jmp 0x1001af31
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xe8], 0xf6b34c2
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jl 0x1001af20
mov dword [ebp - 8], ecx
jmp 0x1001b065
mov dword [ebp - 0x10], 0xfffffffe
mov dword [ebp - 0x1c], 0xfffffffc
push 5
pop eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x7c], ecx
je 0x1001afbd
mov eax, dword [ebp - 8]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x78]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
cmp ecx, eax
setge dl
xor eax, eax
sub edx, dword [ebp - 0x78]
cmp edx, 0xffffffff
setne al
cmp eax, dword [ebp - 0x78]
jge 0x1001afa4
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 8]
xor ecx, ecx
push 3
pop edx
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x18], ecx
je 0x1001b05f
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], ecx
jl 0x1001b046
mov dword [ebp - 0xc], ecx
jmp 0x1001aff0
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x110], 0xfffffff7
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jl 0x1001afdf
mov dword [ebp - 0x18], ecx
jmp 0x1001b01c
mov dword [ebp - 0x1c], 0xdc870af0
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x1001b016
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 3
xor ecx, ecx
pop edx
dec dword [ebp - 0x1c]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jle 0x1001affa
mov dword [ebp - 0x1c], 0x51aaf19
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x110]
sub ecx, eax
neg ecx
push 0
sbb ecx, ecx
inc ecx
mov dword [ebp - 0xe4], ecx
dec dword [ebp - 0x14]
pop ecx
jns 0x1001afda
mov dword [ebp - 0x14], 0x12
jmp 0x1001b057
cmp dword [ebp - 0x7c], ecx
jne 0x1001b062
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1c
jl 0x1001b04f
jmp 0x1001b062
dec dword [ebp - 0x24]
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jle 0x1001af3e
mov dword [ebp - 0xc], 0xfb871c7b
or eax, 0xffffffff
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0xc], ecx
jmp 0x1001b09a
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x15c], 0x64a6847d
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jl 0x1001b089
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x1001b0c8
push ecx
push ecx
push 0x1726
push ecx
push 0xe7c
push ecx
push 0x758
push 0x1695
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ecx, ecx
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], edi
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
jg 0x1001b11b
mov dword [ebp - 0x20], 0x50e6da50
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x20], 0xbfc4f27d
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x1c], 0x9d44c039
dec dword [ebp - 0x1c]
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x1001b112
push ecx
call edi
push eax
call dword [sym.imp.USER32.dll_ClientToScreen]
xor ecx, ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jle 0x1001b0d6
mov byte [ebp - 0x2d], cl
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 8], 0xa8ed40a1
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x18], 0xa82e77e8
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0xc], ecx
jmp 0x1001b158
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xb8], 0xc15d0d65
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x1001b147
mov eax, dword [ebp - 0xb4]
xor edx, edx
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0xb4]
cmp ecx, eax
setle dl
xor eax, eax
test edx, edx
setns al
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
inc ecx
imul eax, ecx
xor ecx, ecx
cmp eax, esi
mov eax, dword [ebp - 0x48]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], 0xfffffff8
cmp dword [ebp - 0x18], 0xffffffeb
je 0x1001b3bb
xor ebx, ebx
inc ebx
mov dword [ebp - 0x14], 2
mov dword [ebp - 0x1c], 0xfffffff7
mov dword [ebp - 0xc], 0xfffffffe
mov dword [ebp - 0x20], 2
mov dword [ebp - 0x20], 0xb5d6
mov dword [ebp - 8], 0
jmp 0x1001b305
mov dword [ebp - 0x24], 0xd9236f91
mov dword [ebp - 0x1c], 0xfffffffb
mov dword [ebp - 0x1c], 0xa9fc5c2d
cmp dword [ebp - 0x14], 0
je 0x1001b2d8
mov dword [ebp - 0x10], 0xa3b
xor edx, edx
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x1c], 0xfffffff8
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], 0xfffffffe
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
setle dl
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ebx
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x1c], eax
jle 0x1001b27d
cmp dword [ebp - 0x48], 0
jne 0x1001b27d
xor esi, esi
jmp 0x1001b27f
mov esi, ebx
mov ecx, dword [ebp - 0x10]
xor edx, edx
mov eax, dword [ebp - 0x10]
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setne dl
xor ecx, ecx
sub edx, esi
cmp edx, eax
mov eax, 0x9e4a0435
setg cl
cmp eax, ecx
mov eax, dword [ebp - 0x14]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x48]
mov dword [ebp - 0x1c], edx
xor edx, edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
mov eax, dword [ebp - 0x24]
setle dl
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0xc], ecx
jmp 0x1001b2ed
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x1001b2ed
push 0x1061
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x1001b302
push 0
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowInfo]
inc dword [ebp - 8]
cmp dword [ebp - 8], 0xc
jne 0x1001b202
mov dword [ebp - 8], 3
cmp dword [ebp - 8], 0
jl 0x1001b3a8
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], 0
jl 0x1001b35c
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x1001b357
push 0
push 0x67c
push 0
push 0x933
push 0
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawTextExW]
dec dword [ebp - 0xc]
jns 0x1001b32d
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x50], 0
jne 0x1001b390
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x50]
cmp eax, ebx
mov eax, dword [ebp - 8]
setne dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x50]
cmp edx, eax
setl cl
cmp ecx, dword [ebp - 0x48]
je 0x1001b39a
cmp dword [ebp - 0x14], 0
je 0x1001b39a
cmp dword [ebp - 8], 0
je 0x1001b39a
mov eax, ebx
jmp 0x1001b39c
xor eax, eax
mov dword [ebp - 0x1c], eax
dec dword [ebp - 8]
jns 0x1001b320
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffeb
jne 0x1001b1d3
mov ebx, dword [ebp - 0x2c]
xor esi, esi
inc esi
cmp byte [ebp - 0x2d], 0
je 0x1001b504
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
jmp 0x1001b3e6
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xcc], 0x25a8
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x1001b3d5
mov dword [ebp - 8], 0x14
jmp 0x1001b402
mov dword [ebp - 0x20], 0x8cb4c23a
mov dword [ebp - 0x20], esi
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffffa
jl 0x1001b3f5
push 2
pop edi
mov dword [ebp - 8], edi
cmp dword [ebp - 8], 0
jl 0x1001b458
mov dword [ebp - 0x1c], 0xba29f583
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0xcc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0xcc]
cmp esi, eax
mov eax, dword [ebp - 0xc8]
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, 0xffffffff
setge cl
imul edx, ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x1c], 7
dec dword [ebp - 8]
jns 0x1001b414
push 0x24a6
push 0
call fcn.1001cc37
pop ecx
pop ecx
jmp 0x1001b507
mov dword [ebp - 0x24], 0x4b5e
mov dword [ebp - 0xc], 0x4b2e809b
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
inc eax
cmp eax, 3
sbb eax, eax
xor ecx, ecx
neg eax
add eax, dword [ebp - 0x10]
imul eax, eax, 0x2167
cmp eax, esi
mov eax, dword [ebp - 0xc]
setge cl
xor edx, edx
cmp eax, ecx
setg dl
xor ecx, ecx
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
cmp edx, eax
setle cl
sub ecx, dword [ebp - 0xc]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
neg eax
sbb eax, eax
xor edx, edx
neg eax
sub ecx, eax
mov eax, dword [ebp - 0x10]
cmp eax, ecx
setge dl
sub edx, dword [ebp - 0x24]
add edx, 0x4a10
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
mov dword [ebp - 0x20], ecx
jmp 0x1001b507
push 2
pop edi
lea eax, [ebp - 0xa0]
push eax
push 0x4600
push 0
push 0x6721
call fcn.1001b975
add esp, 0x10
cmp dword [ebx + 0x14], 0x10
jb 0x1001b52c
mov ecx, dword [ebx]
jmp 0x1001b52e
mov ecx, ebx
cmp dword [ebx + 0x14], 0x10
mov dword [ebp - 0x3c], ecx
jb 0x1001b53b
mov edx, dword [ebx]
jmp 0x1001b53d
mov edx, ebx
mov eax, dword [ebx + 0x10]
add eax, edx
cmp ecx, eax
je 0x1001b7f7
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x20], 0
mov dword [ebp - 8], 0
jmp 0x1001b572
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x94], 0xd6923607
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x1001b561
mov dword [ebp - 8], 0
jmp 0x1001b591
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x11c], 0xa788afb1
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x1001b580
mov dword [ebp - 0x18], 0xfffffffb
cmp dword [ebp - 0x18], 0xffffffe6
jne 0x1001b728
xor ebx, ebx
inc ebx
mov dword [ebp - 0xc], 0
jmp 0x1001b5c2
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x38], 8
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x1001b5b4
mov dword [ebp - 0x34], 0
jmp 0x1001b70b
mov dword [ebp - 0x14], 0x6dd8d130
mov dword [ebp - 0x1c], 0x9d1fe905
mov dword [ebp - 0x14], 6
jmp 0x1001b6f6
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], 0x922a
mov dword [ebp - 8], 0
jmp 0x1001b6a0
mov dword [ebp - 0x10], 0xfffffff9
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], 0
jl 0x1001b69d
mov dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 0xc], 0
jl 0x1001b694
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x10]
sub ecx, 0x86a3
neg ecx
sbb ecx, ecx
inc ecx
imul eax, ecx
neg eax
sbb eax, eax
inc eax
cmp eax, 0x5f5a2f6
jge 0x1001b657
cmp dword [ebp - 0x14], 0
jne 0x1001b657
xor edx, edx
jmp 0x1001b659
mov edx, ebx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x34]
setge cl
sub eax, ecx
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0xc]
jl 0x1001b675
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + eax*4 - 0x94]
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x94], ecx
dec dword [ebp - 0xc]
jns 0x1001b627
dec dword [ebp - 0x10]
jns 0x1001b617
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jle 0x1001b603
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x14]
je 0x1001b6d2
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x34]
cmp eax, ecx
mov eax, dword [ebp - 0x94]
setle dl
imul eax, edx
test eax, eax
je 0x1001b6d2
mov eax, ebx
jmp 0x1001b6d4
xor eax, eax
mov dword [ebp - 0x118], eax
xor edx, edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setle dl
mov dword [ebp - 0x20], edx
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffeb
je 0x1001b5ed
push 0
call fcn.1001cc01
dec dword [ebp - 0x34]
pop ecx
cmp dword [ebp - 0x34], 0xffffffe4
je 0x1001b5d3
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffe6
je 0x1001b5ab
mov ebx, dword [ebp - 0x2c]
xor esi, esi
inc esi
mov eax, dword [ebp - 0x3c]
mov al, byte [eax]
cmp al, 0x30
jl 0x1001b7ea
cmp al, 0x39
jg 0x1001b7ea
mov dword [ebp - 0x28], 0x9ac70c30
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0xc], 0
jmp 0x1001b765
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xc0], 0xc41fd9d0
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x1001b754
cmp dword [ebp - 0x28], 0
je 0x1001b7b0
mov eax, dword [ebp - 0x28]
mov ecx, esi
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x28]
cmp ecx, eax
jg 0x1001b789
cmp dword [ebp - 0x28], 0
jne 0x1001b789
xor edx, edx
jmp 0x1001b78b
mov edx, esi
mov dword [ebp - 0xbc], edx
xor ecx, ecx
mov eax, dword [ebp - 0x28]
cmp edx, eax
setg cl
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], esi
je 0x1001b7b0
cmp dword [ebp - 0xbc], 0
je 0x1001b7b0
xor eax, eax
jmp 0x1001b7b2
mov eax, esi
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x28]
push eax
push 0
call fcn.1001ccd3
lea eax, [ebp - 0x3c]
push eax
push 0x104c
lea eax, [ebp - 0x40]
push eax
push 0
push 0x794e
push 0x3184
call fcn.10025c1c
mov ecx, dword [ebp - 0x3c]
add esp, 0x20
inc ecx
jmp 0x1001b52e
mov eax, dword [ebp - 0x40]
and dword [eax], 0
xor al, al
jmp 0x1001b930
push 5
pop eax
xor edx, edx
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x2c], 0xfffffff6
mov dword [ebp - 0x10], 0xe5849968
mov dword [ebp - 0x20], 0xee0cd979
mov dword [ebp - 0x18], 0x785734cb
mov dword [ebp - 0x24], 0xa2967684
mov dword [ebp - 0x1c], 0x5d8d3410
push 0xfffffffffffffff9
pop ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0x20], 0x1f56
push 3
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 8], 0
pop ebx
jmp 0x1001b876
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x104], 0x6e40424b
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x1001b865
mov dword [ebp - 8], 0
jmp 0x1001b891
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xf8], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x1001b884
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x1c], 0
je 0x1001b8a5
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x100], 0xeff85a04
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
neg ecx
add eax, ecx
je 0x1001b8cb
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0xffffffff
setge cl
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x20], 8
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x20], 4
mov dword [ebp - 0xc], 0
jmp 0x1001b904
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xac], 0x77862fd4
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x1001b8f3
mov dword [ebp - 0xa8], 0xfffffffb
jmp 0x1001b925
mov dword [ebp - 0x2c], 0x11151
inc dword [ebp - 0x2c]
dec dword [ebp - 0xa8]
cmp dword [ebp - 0xa8], 0xffffffe8
jg 0x1001b915
mov al, dl
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret