Function at 0x1001a101
Capabilities:
Accept command line arguments
Allocate thread local storage
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10080615
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x130
push ebx
push esi
push edi
mov dword [esp + 0x10], 0x6b8f3d42
xor ebx, ebx
mov dword [esp + 0x24], 0x836b16b4
xor edi, edi
push 3
pop esi
mov dword [esp + 0x28], esi
inc edi
mov dword [esp + 0x24], 0x4f4e7975
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x1c], ebx
jmp 0x1001a172
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xfc], 0x4caf14c9
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x1001a15f
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, 0x76942a1e
setl cl
xor eax, eax
mov dword [esp + 0x100], ecx
cmp ecx, 0xe60f
setle al
xor edx, edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x10]
imul eax, dword [esp + 0x10]
cmp eax, 0xc9ca
mov eax, dword [esp + 0x10]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
cmp eax, ecx
mov eax, dword [esp + 0x28]
setne dl
sub eax, edx
mov edx, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], 0xfe387fb0
mov dword [esp + 0x24], 0xd9dcee34
mov dword [esp + 0x10], 8
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], 0x4caa5d73
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
je 0x1001a22a
mov edx, edi
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x24], ecx
mov ecx, edi
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
sub ecx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], ebx
je 0x1001a2e8
push 2
lea ecx, [esp + 0xe8]
call fcn.10017ff2
mov dword [esp + 0x10], ebx
jmp 0x1001a2a1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xe4]
mov dword [eax + ecx*4], 0xffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001a28b
mov dword [esp + 0x1c], ebx
jmp 0x1001a2d3
mov dword [esp + 0xc], ebx
jmp 0x1001a2c9
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x1001a2c5
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jle 0x1001a2b4
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x23
jl 0x1001a2ae
lea ecx, [esp + 0xe4]
call fcn.100188c4
jmp 0x1001a30f
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x1001a2f8
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x1001a30f
push ebx
push ebx
push 0xb6e
call dword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
mov dword [esp + 0x10], 0xfffffff6
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x1001a327
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [esp + 0x10], ebx
jmp 0x1001a341
mov dword [esp + 0x2c], 0x32bb11ac
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff4
jg 0x1001a32d
mov dword [esp + 0x18], 7
lea ecx, [esp + 0x78]
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], 0x3b0a6d08
mov dword [esp + 0x28], 0xe834ab46
mov dword [esp + 0x48], 5
push 4
call fcn.10017ff2
mov dword [esp + 0x144], ebx
mov dword [esp + 0x2c], 2
mov dword [esp + 0x10], ebx
jmp 0x1001a39f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
mov dword [eax + ecx*4], 0x5cbf7935
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1001a38c
mov eax, dword [esp + 0x18]
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp ecx, eax
push 9
setg dl
inc edx
neg edx
sbb edx, edx
inc edx
cmp edx, 0xc9105fa2
sbb eax, eax
or ecx, 0xffffffff
inc eax
cmp ecx, eax
pop ecx
sbb eax, eax
inc eax
cmp ecx, eax
sbb eax, eax
inc eax
sub eax, dword [esp + 0x18]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
test eax, eax
mov eax, dword [esp + 0x18]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x985
setle al
cmp esi, eax
mov eax, dword [esp + 0x18]
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setg cl
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
mov dword [esp + 0x48], ecx
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], ebx
jl 0x1001a54f
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x24], ebx
mov dword [esp + 0xc], esi
cmp dword [esp + 0xc], ebx
jl 0x1001a545
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x104]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
push edi
call fcn.10017ff2
mov dword [esp + 0x10], ebx
jmp 0x1001a4c1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x104]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1001a4af
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
cmp eax, edi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
setge cl
sub edx, ecx
neg edx
sbb edx, edx
inc edx
sub edx, dword [eax + esi*4]
xor eax, eax
cmp edx, 0x34d7
setne al
cmp eax, 0xffffffff
ja 0x1001a51b
mov ecx, dword [esp + 0xc]
mov edx, edi
mov eax, dword [esp + 0x78]
cmp dword [eax + ecx*4], ebx
jne 0x1001a51d
mov edx, ebx
mov eax, dword [esp + 0x2c]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x104]
call fcn.100188c4
dec dword [esp + 0xc]
jns 0x1001a488
push 3
pop esi
dec dword [esp + 0x1c]
jns 0x1001a46e
or dword [esp + 0x144], 0xffffffff
lea ecx, [esp + 0x78]
call fcn.100188c4
mov dword [esp + 0x10], ebx
jmp 0x1001a572
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x68], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1001a566
mov dword [esp + 0x1c], 0xd562b994
lea ecx, [esp + 0x9c]
mov dword [esp + 0x18], 0xfc35327
mov dword [esp + 0x2c], 8
mov dword [esp + 0x28], 0xd681
push 4
call fcn.10017ff2
mov dword [esp + 0x144], edi
mov dword [esp + 0xc], ebx
jmp 0x1001a5c3
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x40], 0x71b18d40
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1001a5b3
mov dword [esp + 0xc], ebx
jmp 0x1001a5e0
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x34], 0xe7937d8e
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x1001a5d0
mov dword [esp + 0xc], ebx
jmp 0x1001a5fe
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x9c]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x1001a5ec
mov dword [esp + 0x34], edi
cmp dword [esp + 0x34], ebx
jl 0x1001a732
push esi
lea ecx, [esp + 0x94]
call fcn.10017ff2
mov dword [esp + 0x2c], 0x56a218f0
mov dword [esp + 0x10], ebx
jmp 0x1001a644
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x90]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001a62e
mov eax, dword [esp + 0x34]
cmp dword [esp + eax*4 + 0x40], ebx
jne 0x1001a726
mov eax, dword [esp + 0x34]
xor edx, edx
mov eax, dword [esp + eax*4 + 0x40]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + eax*4 + 0x40]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
setl dl
add ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x90]
sete dl
xor ecx, ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 0x34]
mov eax, dword [esp + eax*4 + 0x40]
cmp edx, eax
mov eax, dword [esp + 0x34]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x34]
setg dl
sub edx, eax
jne 0x1001a6b8
mov eax, ebx
cmp dword [esp + 0x18], ebx
je 0x1001a6ba
mov eax, edi
mov dword [esp + 0x2c], eax
xor edx, edx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + eax*4 + 0x40]
mov eax, dword [esp + 0x34]
cmp eax, edi
setle dl
sub edx, ecx
neg edx
sbb edx, edx
inc edx
add edx, 0x7e2c101d
jne 0x1001a6ec
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + eax*4 + 0x40]
mov ecx, dword [esp + 0x40]
sub ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x3ae5685e
lea ecx, [esp + 0x90]
setne al
mov dword [esp + 0x2c], eax
call fcn.100188c4
dec dword [esp + 0x34]
jns 0x1001a613
jmp 0x1001a732
lea ecx, [esp + 0x90]
call fcn.100188c4
cmp dword [esp + 0x44], ebx
je 0x1001a7a9
cmp dword [esp + 0x38], ebx
je 0x1001a746
mov eax, edi
cmp dword [esp + 0x1c], ebx
jne 0x1001a748
mov eax, ebx
mov ecx, dword [esp + 0x3c]
xor edx, edx
imul ecx, eax
mov eax, dword [esp + 0x38]
sub eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x9c]
cmp ecx, dword [eax]
setge dl
cmp edx, dword [esp + 0x1c]
jne 0x1001a781
mov ecx, ebx
cmp dword [esp + 0x28], ebx
je 0x1001a783
mov ecx, edi
mov eax, dword [esp + 0x1c]
mov edx, edi
sub ecx, eax
sub ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, eax
mov eax, dword [esp + 0x18]
imul eax, ecx
cmp eax, 0x9123ebaa
jae 0x1001a7ab
mov edx, ebx
mov eax, dword [esp + 0x40]
xor ecx, ecx
sub edx, eax
mov eax, dword [esp + 0x44]
neg eax
cmp eax, edx
setne cl
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x9c]
or dword [esp + 0x144], 0xffffffff
call fcn.100188c4
mov dword [esp + 0x18], 0xbac64a68
lea ecx, [esp + 0xf0]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], 0xffffffff
push 4
call fcn.10017ff2
mov dword [esp + 0x144], 2
mov dword [esp + 0x10], ebx
jmp 0x1001a81f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xf0]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1001a809
mov dword [esp + 0x18], ebx
jmp 0x1001a885
push dword [esp + 0x68]
movdqa xmm0, xmmword [0x10007bb0]
lea eax, [esp + 0x124]
push eax
lea eax, [esp + 0x118]
mov dword [esp + 0x74], ebx
push eax
push ebx
lea ecx, [esp + 0x7c]
mov dword [esp + 0x80], ebx
movdqu xmmword [esp + 0x120], xmm0
mov dword [esp + 0x84], ebx
call fcn.1001973b
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x6c]
mov dword [eax + 8], 0x1dba3399
call fcn.100188c4
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 5
jne 0x1001a82c
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add ecx, 0xd705
cmp eax, ecx
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov ecx, 0xf3f17e2f
setg dl
xor eax, eax
cmp edx, 0xf4a4
setg al
cmp ecx, eax
mov ecx, 0xcfd66c4a
sbb eax, eax
neg eax
cmp ecx, eax
mov eax, dword [esp + 0x18]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setle dl
add edx, dword [esp + 0x18]
sub edx, dword [esp + 0xc]
neg edx
sbb edx, edx
inc edx
sub edx, dword [esp + 0xc]
je 0x1001aa3b
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], 0x38f7
cmp dword [esp + 0x18], ebx
jne 0x1001a9b4
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0xc], 0xd693
jne 0x1001a925
mov eax, edi
cmp dword [esp + 0x1c], ebx
jne 0x1001a927
mov eax, ebx
xor edx, edx
cmp eax, 0xc752
sete dl
sub edx, dword [esp + 0xc]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
add edx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp edx, eax
setge cl
cmp ecx, dword [esp + 0x1c]
jne 0x1001a957
mov edx, edi
cmp dword [esp + 0xc], ebx
jne 0x1001a959
mov edx, ebx
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp edx, eax
setg cl
imul ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x18]
jle 0x1001a979
cmp dword [esp + 0xc], ebx
jne 0x1001a979
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x18], 0xfffffffe
mov eax, dword [esp + 0x18]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setl cl
cmp ecx, dword [esp + 0xc]
jl 0x1001a99f
mov edx, edi
cmp dword [esp + 0x1c], ebx
jne 0x1001a9a1
mov edx, ebx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, eax
mov eax, ebx
setg cl
sub ecx, dword [esp + 0x18]
je 0x1001a9b6
mov eax, edi
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
jne 0x1001a9c4
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ecx, 0x94c655ef
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
cmp edi, eax
sbb eax, eax
neg eax
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], 3
cmp dword [esp + 0xc], ebx
jl 0x1001aaa4
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001aa1f
push 0xcbb
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetPolyFillMode]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001aa33
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAdjustment]
dec dword [esp + 0xc]
jns 0x1001a9ff
jmp 0x1001aaa4
mov dword [esp + 0x10], 2
jmp 0x1001aa9d
mov dword [esp + 0xc], 3
cmp dword [esp + 0xc], ebx
jl 0x1001aa99
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001aa6b
push ebx
push 0xa06
push ebx
call dword [sym.imp.GDI32.dll_ExtCreateRegion]
mov dword [esp + 0x18], ebx
jmp 0x1001aa8c
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001aa88
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jle 0x1001aa71
dec dword [esp + 0xc]
jns 0x1001aa53
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffd
jge 0x1001aa45
or dword [esp + 0x144], 0xffffffff
lea ecx, [esp + 0xf0]
call fcn.100188c4
mov byte [esp + 0x33], bl
lea ecx, [esp + 0xa8]
push 4
call fcn.10017ff2
push edi
lea ecx, [esp + 0x88]
mov dword [esp + 0x148], 3
call fcn.10017ff2
mov dword [esp + 0xc], ebx
jmp 0x1001aafe
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], 0x313d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x1001aae8
mov dword [esp + 0xc], ebx
jmp 0x1001ab21
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], 0xdba76aab
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x1001ab0b
mov eax, dword [esp + 0x84]
mov dword [eax], 3
mov dword [esp + 0x10], 0x3690f1d8
mov dword [esp + 0x10], 3
cmp dword [esp + 0x10], ebx
jl 0x1001ab62
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001ab5c
push ebx
call dword [sym.imp.USER32.dll_DestroyIcon]
dec dword [esp + 0x10]
jns 0x1001ab4a
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0xa8]
mov edx, dword [ecx]
cmp dword [eax + edx*4], ebx
jne 0x1001ab80
lea eax, [edx - 1]
mov dword [ecx], eax
test eax, eax
jns 0x1001ab34
lea ecx, [esp + 0x84]
call fcn.100188c4
or dword [esp + 0x144], 0xffffffff
lea ecx, [esp + 0xa8]
call fcn.100188c4
push 0x61c2
push 0x4ea
push 0x18f3
push 0x5590
push 0x68cd
push ebx
push 0x22f4
push 0x6d1b
push ecx
lea edx, [esp + 0x57]
mov ecx, 0x2302
call fcn.1001b1d0
mov dword [esp + 0x3c], 7
add esp, 0x24
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], 0x919c44d4
cmp dword [esp + 0x18], ebx
je 0x1001abfc
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x18]
mov eax, edi
jne 0x1001abfe
mov eax, ebx
add eax, 0xffffc62a
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
je 0x1001ac13
cmp dword [esp + 0x18], ebx
jne 0x1001ac19
cmp dword [esp + 0x18], ebx
je 0x1001ac1d
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x10], ebx
jne 0x1001ac33
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp ecx, eax
setg dl
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x10], ebx
je 0x1001acc7
mov dword [esp + 0x10], ebx
jmp 0x1001ac81
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x120], 0xffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001ac6e
mov dword [esp + 0x18], ebx
jmp 0x1001acbe
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x120], ebx
jne 0x1001acea
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001acba
push 0xe5c
push ebx
push 0x175b
call esi
push eax
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jle 0x1001ac8e
jmp 0x1001acea
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001acea
push ebx
push 0x2030
push 0x170b
push 0xdeb
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
push 4
lea ecx, [esp + 0xdc]
call fcn.10017ff2
push 4
pop edx
mov dword [esp + 0x144], edx
mov dword [esp + 0xc], 0x66fe7d8a
mov dword [esp + 0x10], ebx
jmp 0x1001ad22
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001ad10
mov dword [esp + 0xc], 3
cmp dword [esp + 0xc], ebx
jl 0x1001ade4
mov dword [esp + 0x18], 0x4b25b3b
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001ad5e
push 0xdcc
push 0x1f19
push ebx
call dword [sym.imp.GDI32.dll_OffsetRgn]
mov dword [esp + 0x18], 3
cmp dword [esp + 0x18], ebx
jl 0x1001adda
mov dword [esp + 0x1c], 0x759951ea
mov dword [esp + 0x1c], ebx
jmp 0x1001adc9
push 2
lea ecx, [esp + 0xb8]
call fcn.10017ff2
mov dword [esp + 0x10], ebx
jmp 0x1001ada4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xb4]
mov dword [eax + ecx*4], 0xffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001ad8e
mov eax, dword [esp + 0xb4]
lea ecx, [esp + 0xb4]
mov dword [eax + 4], 0x4f3d4e6
call fcn.100188c4
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jle 0x1001ad7a
mov eax, dword [esp + 0xc]
dec dword [esp + 0x18]
jns 0x1001ad6c
dec dword [esp + 0xc]
jns 0x1001ad3a
or dword [esp + 0x144], 0xffffffff
lea ecx, [esp + 0xd8]
call fcn.100188c4
push 3
mov byte [esp + 0x27], bl
mov dword [esp + 0x10], ebx
pop ecx
jmp 0x1001ae11
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x54], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x1001ae05
mov dword [esp + 0xc], ebx
jmp 0x1001ae30
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x12c], 0xfa75c19c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x1001ae1d
mov dword [esp + 0x54], ebx
cmp dword [esp + 0x54], ebx
jge 0x1001af12
mov dword [esp + 0x1c], 0xd3f46721
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001ae62
push 0x1488
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [esp + 0x1c], ebx
jmp 0x1001aefd
mov dword [esp + 0x28], 0xfffffff9
mov dword [esp + 0xc0], 0xfffffffc
mov dword [esp + 0xc4], 0xfffffffc
mov dword [esp + 0xc8], 0xfffffffc
mov dword [esp + 0xcc], 0xfffffffc
inc dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x12c]
cmp eax, dword [esp + 0x1c]
je 0x1001aebc
mov edx, edi
cmp dword [esp + 0x1c], ebx
jne 0x1001aebe
mov edx, ebx
mov eax, dword [esp + 0x54]
cmp dword [esp + 0x5c], ebx
jne 0x1001aed0
mov ecx, ebx
cmp dword [esp + 0x28], ebx
je 0x1001aed2
mov ecx, edi
xor eax, eax
cmp ecx, 0xffffffff
setl al
xor ecx, ecx
imul eax, dword [esp + 0x1c]
cmp edx, eax
setle cl
xor eax, eax
sub ecx, dword [esp + 0x54]
cmp ecx, 0xffffffff
setne al
mov dword [esp + 0xc0], eax
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jle 0x1001ae6b
inc dword [esp + 0x54]
js 0x1001ae44
cmp byte [esp + 0x23], 0
je 0x1001b112
mov dword [esp + 0x10], ebx
jmp 0x1001af33
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x4c], 0x99841b3c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001af23
mov dword [esp + 0x4c], 0x14
jmp 0x1001af63
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x1001af5f
push ebx
push ebx
push 0x2fc
call esi
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
dec dword [esp + 0x4c]
cmp dword [esp + 0x4c], 0xfffffff1
je 0x1001af44
push 0x6728
push ebx
call fcn.1001be85
mov dword [esp + 0x18], 0x6e3245f1
xor edx, edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], 0x8951bb35
pop ecx
mov dword [esp + 0x2c], 0x7507af9c
pop ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
neg ecx
cmp ecx, eax
setg dl
add edx, 0x6c37fc04
neg edx
sbb edx, edx
neg edx
cmp edx, dword [esp + 0x10]
je 0x1001afbc
cmp dword [esp + 0x10], ebx
jne 0x1001afbe
mov edi, ebx
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp edi, eax
setne cl
add ecx, 0xfffffffc
neg ecx
sbb ecx, ecx
add ecx, 0x8a019321
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
cmp eax, ecx
mov eax, dword [esp + 0x28]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc]
setne cl
add eax, 0xffff0001
add eax, ecx
add eax, dword [esp + 0x10]
je 0x1001b02e
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x1001b112
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x1001b112
mov dword [esp + 0x18], 0xffff
mov dword [esp + 0xc], ebx
jmp 0x1001b04f
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xd0], 0xbc8b6976
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1001b03c
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x1001b068
push ebx
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [esp + 0xc], ebx
jmp 0x1001b107
mov dword [esp + 0x24], 0x51404fc4
xor edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
mov eax, dword [esp + 0x24]
setle dl
sub eax, 0x45c5
neg eax
sbb eax, eax
inc eax
sub edx, eax
mov eax, dword [esp + 0x24]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x1c], 0xffffffff
jmp 0x1001b0fc
mov dword [esp + 0x18], 0x17
jmp 0x1001b0f1
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x1001b0ed
push ebx
push ebx
call esi
push eax
call dword [sym.imp.USER32.dll_EnumChildWindows]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x28
je 0x1001b0d7
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x1b
jl 0x1001b0cd
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x10
jle 0x1001b071
mov eax, dword [esp + 0x64]
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [esp + 0x60]
mov edi, edx
mov esi, eax
call fcn.1001a08f
mov ecx, dword [esp + 0x13c]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret