Function at 0x10019dca
Capabilities:
Accept command line arguments
Check os version

Disassembly:
mov eax, 0x100857e1
call fcn.10084f30
sub esp, 0x234
push ebx
push esi
xor esi, esi
mov dword [ebp - 0x9c], ecx
push edi
inc esi
mov dword [ebp - 0x98], edx
push esi
lea ecx, [ebp - 0xc4]
call fcn.10017f3e
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x28], 0x3838a1f9
mov dword [ebp - 0x10], ebx
jmp 0x10019e18
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc4]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10019e09
mov dword [ebp - 0x10], ebx
jmp 0x10019e33
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x22c], 2
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10019e22
mov dword [ebp - 0x10], ebx
jmp 0x10019e4f
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x240], 0x5d06
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10019e3e
mov edi, dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x10019e87
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x10019e82
push 0x19e0
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
dec dword [ebp - 0x28]
jns 0x10019e69
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], 0xfffffff3
jg 0x10019ff1
mov dword [ebp - 0x10], 3
mov dword [ebp - 0x20], 0xcafe8b0d
mov dword [ebp - 0x40], 0x5466
mov dword [ebp - 0x10], ebx
jmp 0x10019fce
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x10c]
push 3
call fcn.10017f3e
mov dword [ebp - 0x2c], 0xa9d9e177
mov dword [ebp - 0x18], 0xf7c2f5a2
mov dword [ebp - 0x1c], ebx
jmp 0x10019ee7
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10c]
mov dword [eax + ecx*4], 0x16f93bd5
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10019ed4
mov dword [ebp - 0x1c], ebx
jmp 0x10019fb7
mov dword [ebp - 0x24], 0x9b6917ab
mov dword [ebp - 0x20], 6
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], 0x223d
jle 0x10019f1e
mov dword [ebp - 0x20], 1
cmp dword [ebp - 0x10], ebx
jne 0x10019f21
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xc4]
mov esi, dword [ebp - 0x1c]
push 0
cmp dword [ecx + edx*4], eax
mov eax, dword [ebp - 0x10c]
pop ecx
setne cl
mov dword [ebp - 0x2c], ecx
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc4]
setl cl
xor edx, edx
cmp dword [ebp - 0x2c], ecx
setg dl
add edx, dword [eax + esi*4]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
sub eax, 0xfffffffa
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x228]
jg 0x10019fa5
mov dword [ebp - 0x18], ebx
jmp 0x10019f9e
mov dword [ebp - 0x2c], 0x6930
mov dword [ebp - 0x24], 7
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x10019f87
jmp 0x10019fb4
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x10019fb4
push ebx
call dword [sym.imp.GDI32.dll_CreateBrushIndirect]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jle 0x10019ef5
lea ecx, [ebp - 0x10c]
call fcn.10017fc0
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffe2
jg 0x10019eb1
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffff3
jle 0x10019e94
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov edi, dword [sym.imp.USER32.dll_GetDC]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc4]
call fcn.10017fc0
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x30], 0x878abc10
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x30], 0x24f20479
push 8
pop ecx
cmp dword [ebp - 0x18], ebx
je 0x1001a05e
mov dword [ebp - 0x18], ebx
jmp 0x1001a032
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb8], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x1001a025
mov dword [ebp - 0x18], ebx
jmp 0x1001a054
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x1001a051
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x1001a03d
jmp 0x1001a0ec
mov dword [ebp - 0x20], 0xb807cfaf
lea ecx, [ebp - 0x184]
mov dword [ebp - 0x30], 0xec80f219
push 2
call fcn.10017f3e
push 2
mov dword [ebp - 0x10], ebx
pop edx
jmp 0x1001a094
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x184]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1001a081
mov dword [ebp - 0x10], ebx
jmp 0x1001a0af
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1dc], 0x976b5a7d
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1001a09e
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x184]
setne dl
xor ecx, ecx
cmp edx, dword [eax + 4]
setl cl
mov dword [ebp - 0x1dc], ecx
lea ecx, [ebp - 0x184]
call fcn.10017fc0
mov dword [ebp - 0x34], 0x4e1a
lea ecx, [ebp - 0x16c]
push 2
call fcn.10017f3e
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x1c], 0x13dd33a4
push 2
call fcn.10017f3e
mov dword [ebp - 0x18], ebx
jmp 0x1001a130
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x130]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1001a120
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 7
jg 0x1001a17a
xor edx, edx
inc edx
mov dword [ebp - 0x18], ebx
jmp 0x1001a151
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x44], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x1001a147
mov dword [ebp - 0x44], ebx
jmp 0x1001a16c
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x130]
cmp dword [eax + ecx*4], ebx
jne 0x1001a171
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], edx
jle 0x1001a15b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 7
jle 0x1001a142
lea ecx, [ebp - 0x130]
call fcn.10017fc0
mov dword [ebp - 0x40], 0x7525d2d9
xor ecx, ecx
mov dword [ebp - 0x30], 0xfffffffc
inc ecx
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x10], ebx
jmp 0x1001a1b0
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x48], 0xdf75
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1001a1a2
mov dword [ebp - 0x10], ebx
jmp 0x1001a1c8
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x38], 0x90c4d8e5
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1001a1ba
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], 2
jge 0x1001a1ec
push 8
pop edx
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xf0], edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1001a1d9
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x38], ebx
jg 0x1001a338
mov dword [ebp - 0x1c], 0xfffffff7
mov dword [ebp - 0x30], 0xcb8f1fe3
mov dword [ebp - 0x30], 0x95d7c15
mov dword [ebp - 0x30], 0xfffffff9
mov dword [ebp - 0x20], 0xfffffffd
mov eax, dword [ebp - 0x38]
cmp dword [ebp + eax*4 - 0x48], ebx
jne 0x1001a335
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x1001a329
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x24], 0xee85ec41
mov dword [ebp - 0x30], 0xbca925f3
mov dword [ebp - 0x30], 0xfffffff8
mov dword [ebp - 0x18], ebx
jmp 0x1001a266
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x234], 0xfffffffd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1001a255
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1001a31d
mov dword [ebp - 0x28], ebx
jmp 0x1001a28a
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x1b0], ebx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
jl 0x1001a27d
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1001a2aa
push 0xe45
push 0xd31
push ebx
call dword [sym.imp.USER32.dll_RemoveMenu]
mov dword [ebp - 0x1a4], ebx
cmp dword [ebp - 0x1a4], ebx
jl 0x1001a314
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
neg ecx
mov edx, dword [ebp + eax*4 - 0x48]
imul edx, ecx
sub edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
add edx, dword [ebp + eax*4 - 0x48]
mov eax, dword [ebp - 0x1c]
imul edx, dword [ebp + eax*4 - 0x48]
cmp edx, dword [ebp - 0x38]
jne 0x1001a2ec
cmp dword [ebp - 0x24], ebx
je 0x1001a2ec
xor ecx, ecx
inc ecx
jmp 0x1001a2ee
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
add eax, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x38]
imul eax, dword [ebp - 0x24]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x1a4]
jns 0x1001a2b8
dec dword [ebp - 0x18]
jns 0x1001a278
inc dword [ebp - 0x20]
dec dword [ebp - 0x1c]
jns 0x1001a234
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], ebx
jle 0x1001a1f8
xor ecx, ecx
inc ecx
mov dword [ebp - 0x30], 0xcfbce008
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], 0x582f80c3
mov dword [ebp - 0x18], ebx
jmp 0x1001a35c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x64], 0x100c4307
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x1001a34e
mov eax, dword [ebp - 0x64]
dec dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x64], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1001a392
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], 0xa94b2ab7
mov dword [ebp - 0x24], 0x3659ea4d
push 7
mov dword [ebp - 0x2c], 0x36378284
pop edx
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], ebx
je 0x1001a3e5
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1001a3d1
push 0xaf3
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1001a440
call esi
push eax
call dword [sym.imp.USER32.dll_ShowCaret]
jmp 0x1001a440
mov dword [ebp - 0x1c], ebx
jmp 0x1001a3f7
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1f4], edx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x1001a3ea
mov dword [ebp - 0x24], 0xe4b7
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x18], 0x24ce5545
jle 0x1001a42c
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
add eax, 0x62d7bc35
jne 0x1001a420
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1f4]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], ecx
jbe 0x1001a43b
mov eax, ecx
cmp dword [ebp - 0x18], ebx
jne 0x1001a43d
mov eax, ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], ebx
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], 0x14b58e17
push 2
call fcn.10017f3e
mov dword [ebp - 0x24], 0xaf9031ea
mov dword [ebp - 0x10], ebx
jmp 0x1001a474
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x4c], 0x7a1245c8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 1
jl 0x1001a466
mov dword [ebp - 0x10], ebx
jmp 0x1001a492
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xdc]
mov dword [eax + ecx*4], 0xaae07ea4
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1001a47f
mov dword [ebp - 0x10], ebx
jmp 0x1001a4ae
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x100], 0xf4a1d2da
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1001a49d
mov dword [ebp - 0x10], ebx
jmp 0x1001a4ca
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x178], 1
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1001a4b9
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xdc]
dec dword [eax]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x20]
dec eax
neg eax
sbb eax, eax
xor edx, edx
neg eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
mov ecx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x174]
setge dl
add ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0xf4]
sete dl
xor ecx, ecx
add edx, 0xdf6819a1
cmp edx, eax
setge cl
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0x1c], ebx
jmp 0x1001a583
mov dword [ebp - 0x18], ebx
jmp 0x1001a568
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1c8], 0x187e526
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1001a557
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x1c4], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jle 0x1001a552
lea ecx, [ebp - 0xdc]
call fcn.10017fc0
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0xb0], 0x6bde64f
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x24], 0x7182abbf
mov dword [ebp - 0x2c], 0xde81d534
mov dword [ebp - 0x24], 0xf888c55
mov dword [ebp - 0x30], 0x82b3
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x10]
jl 0x1001a5d1
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, 0xfbb9cf7d
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x10]
neg eax
sbb eax, eax
inc eax
cmp ecx, eax
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
sub eax, ecx
imul ecx, eax, 0x26fb
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
setle dl
mov dword [ebp - 0x24], edx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1001a623
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x18], 0x12
jmp 0x1001a7a7
mov dword [ebp - 0x10], 1
lea ecx, [ebp - 0x148]
push 3
call fcn.10017f3e
mov dword [ebp - 0x2c], 0x116e074f
mov dword [ebp - 0x28], ebx
jmp 0x1001a673
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x148]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x1001a664
mov dword [ebp - 0x10], ebx
jmp 0x1001a730
mov dword [ebp - 0x28], 0x5b7d
mov eax, dword [ebp - 0x28]
neg eax
je 0x1001a704
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x148]
mov dword [eax + 8], 0xea14
mov eax, dword [ebp - 0x1c]
cmp eax, 0x703acb6d
mov eax, dword [ebp - 0x28]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setle dl
xor ecx, ecx
cmp eax, edx
setge cl
sub ecx, 0x7ae9
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x4e1054d8
mov ecx, 0xb752bf39
setl al
sub eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
inc eax
cmp eax, 0xffffffff
sbb eax, eax
neg eax
cmp ecx, eax
mov eax, dword [ebp - 0x28]
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setl cl
cmp ecx, 0x45fe
je 0x1001a70d
cmp dword [ebp - 0x1c], ebx
jne 0x1001a70d
mov ecx, ebx
jmp 0x1001a710
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x18]
xor edx, edx
imul eax, ecx
cmp eax, 0xf4d4e2
mov eax, dword [ebp - 0x28]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x2c], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 7
jle 0x1001a681
mov dword [ebp - 0x10], ebx
jmp 0x1001a793
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1001a755
push ebx
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_RectVisible]
mov dword [ebp - 0x1c], ebx
jmp 0x1001a78a
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1001a776
push 0x1b06
push 0x2300
call esi
push eax
call dword [sym.imp.USER32.dll_SetClassLongA]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1001a787
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1e
je 0x1001a75a
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 6
je 0x1001a73f
lea ecx, [ebp - 0x148]
call fcn.10017fc0
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffffc
jg 0x1001a644
mov dword [ebp - 0xac], 0x71658a60
lea ecx, [ebp - 0xa8]
push 1
call fcn.10017f3e
mov dword [ebp - 0x24], 0xd42c
xor edx, edx
mov dword [ebp - 0x20], 0x495e3b37
inc edx
push 2
pop eax
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x20], 0xfffffffb
mov dword [ebp - 0x20], 0xe33a79cc
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x18], ebx
jmp 0x1001a819
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xa8]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x1001a80a
mov eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0xa8]
jge 0x1001a83a
cmp dword [edx], ebx
jne 0x1001a83a
mov eax, ebx
jmp 0x1001a83d
xor eax, eax
inc eax
imul eax, eax, 0xffff
xor ecx, ecx
cmp eax, dword [edx]
setne cl
xor edx, edx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
setge dl
mov dword [ebp - 0x20], edx
xor edx, edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xa8]
cmp dword [eax], ecx
setl dl
mov dword [ebp - 0x2c], edx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1001a8a0
push 0x192e
push 0x1c2a
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
lea ecx, [ebp - 0xa8]
call fcn.10017fc0
push dword [ebp - 0xb8]
lea eax, [ebp - 0x210]
mov dword [ebp - 0xe8], ebx
push eax
lea eax, [ebp - 0x220]
mov dword [ebp - 0xe4], ebx
push eax
xorps xmm0, xmm0
mov dword [ebp - 0xe0], ebx
push ebx
lea ecx, [ebp - 0xe8]
movdqu xmmword [ebp - 0x220], xmm0
call fcn.10019435
xor esi, esi
mov byte [ebp - 4], 2
inc esi
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x30], esi
push 3
call fcn.10017f3e
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x190]
mov dword [ebp - 0x18], 0x8a9017ca
mov dword [ebp - 0x24], 0x18b47430
mov dword [ebp - 0x20], 4
push esi
call fcn.10017f3e
mov dword [ebp - 0x2c], 0x94407742
mov dword [ebp - 0x10], ebx
jmp 0x1001a943
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x84]
mov dword [eax + ecx*4], 0xa5fef9d7
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1001a930
push 2
mov dword [ebp - 0x10], ebx
pop ecx
jmp 0x1001a962
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x94], 0x5a7dd9ae
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1001a951
mov dword [ebp - 0x10], ebx
jmp 0x1001a97d
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x8c], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1001a96c
mov dword [ebp - 0x10], ebx
jmp 0x1001a99a
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x190]
mov dword [eax + ecx*4], 0x2b42d225
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x1001a987
mov edi, dword [ebp - 0x84]
xor ecx, ecx
cmp dword [edi + 8], ebx
mov eax, dword [edi]
sete cl
sub eax, ecx
mov dword [ebp - 0x18], eax
jne 0x1001a9f9
mov eax, dword [ebp - 0x8c]
inc dword [ebp - 0x8c]
test eax, eax
jne 0x1001a9cc
mov eax, dword [ebp - 0x94]
mov eax, dword [ebp - 0x94]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x90]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
cmp eax, 0x196a
setg cl
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], ebx
je 0x1001aa03
mov edx, esi
cmp dword [ebp - 0x8c], ebx
jne 0x1001aa05
mov edx, ebx
mov eax, dword [ebp - 0x84]
xor ecx, ecx
cmp edx, dword [eax]
setne cl
mov dword [ebp - 0x94], ecx
test ecx, ecx
jne 0x1001aa23
mov edx, ebx
cmp dword [ebp - 0x18], ebx
je 0x1001aa25
mov edx, esi
mov eax, dword [ebp - 0x190]
xor ecx, ecx
mov dword [eax], edx
mov eax, dword [ebp - 0x84]
mov esi, dword [eax]
mov eax, dword [ebp - 0x20]
cmp edx, eax
mov eax, esi
setge cl
xor edx, edx
cmp ecx, dword [edi + 8]
setl dl
xor ecx, ecx
sub eax, edx
cmp eax, esi
setl cl
sub ecx, 5
jne 0x1001aa63
cmp dword [ebp - 0x20], ebx
jne 0x1001aa63
xor edi, edi
mov edx, ebx
inc edi
jmp 0x1001aa68
xor edi, edi
inc edi
mov edx, edi
mov eax, dword [ebp - 0x84]
xor ecx, ecx
cmp edx, dword [eax + 4]
setg cl
xor edx, edx
cmp ecx, dword [eax]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x84]
setle dl
add ecx, edx
sub ecx, dword [eax]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x190]
call fcn.10017fc0
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 2
call fcn.10017fc0
mov dword [ebp - 0x60], 0xffffffff
mov dword [ebp - 0x60], 0xffffffff
mov dword [ebp - 0x10], 0xca4f833f
mov dword [ebp - 0x24], 0xf3e76e5b
mov dword [ebp - 0x18], ebx
jmp 0x1001aada
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x210], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1001aacd
push 2
mov dword [ebp - 0x10], ebx
pop edx
jmp 0x1001aaf7
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x210], ebx
jne 0x1001aafc
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jle 0x1001aae8
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x1001ab3c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x16c]
mov dword [eax + ecx*4], 0xcdf98a59
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x1001ab29
push ebx
lea eax, [ebp - 0x34]
push eax
push 0x1ed6
call fcn.1001e30c
add esp, 0xc
mov dword [ebp - 0x24], 0xe58b
mov dword [ebp - 0x20], 7
push 8
pop eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0x29c8ddac
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
imul ecx, dword [ebp - 0x20]
imul ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x20]
dec eax
cmp ecx, eax
jg 0x1001ab8a
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
xor edx, edx
neg eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
setl dl
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x18], ebx
jmp 0x1001abd1
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1001abce
push 0x90f
push 0x1da
push 0x50e
push 0x220b
call dword [sym.imp.GDI32.dll_CreateRectRgn]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jge 0x1001abab
push 4
lea ecx, [ebp - 0x124]
call fcn.10017f3e
push 4
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 4
call fcn.10017f3e
mov byte [ebp - 4], 5
mov dword [ebp - 0x10], ebx
jmp 0x1001ac0b
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x6c], 0xde0bcd8c
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1001abfd
push 4
mov dword [ebp - 0x10], ebx
pop edx
jmp 0x1001ac2c
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x124]
mov dword [eax + ecx*4], 0x6f9b2cfb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1001ac19
mov dword [ebp - 0x10], ebx
jmp 0x1001ac45
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x118]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1001ac36
mov esi, dword [ebp - 0x124]
mov dword [ebp - 0x2c], esi
mov dword [esi + 4], edi
mov edi, dword [ebp - 0x118]
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x20], 0xa60d0058
lea ecx, [ebp - 0x1e8]
push 3
call fcn.10017f3e
mov byte [ebp - 4], 6
mov dword [ebp - 0x18], ebx
jmp 0x1001ac8f
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1e8]
mov dword [eax + ecx*4], 0x4ccb63e
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1001ac7c
inc dword [edi + 8]
mov dword [ebp - 0x20], 1
cmp dword [ebp - 0x20], ebx
jl 0x1001ae0c
xor edi, edi
inc edi
mov dword [ebp - 0x28], 0xb26c4f32
mov dword [ebp - 0x28], edi
cmp dword [ebp - 0x28], ebx
jl 0x1001ae00
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 4], 5
call fcn.10017fc0
dec dword [esi + 4]
jns 0x1001ac5f