Function at 0x1003964c
Capabilities:
Accept command line arguments
Check os version
Delete file
Get common file path
Query environment variable
Read .ini file

Disassembly:
mov eax, 0x10067dfc
call fcn.10066878
sub esp, 0xe5c
push ebx
push esi
push edi
mov byte [ebp - 0x59], dl
mov edi, 0x8a87013d
xor edx, edx
mov dword [ebp - 0x78], ecx
push 4
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edx
pop ecx
jmp 0x10039688
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x644], 0x40d7f825
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x10039677
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
mov dword [ebp - 0x24], 3
push 1
pop ebx
cmp dword [ebp - 0x24], edx
jl 0x100396f2
mov dword [ebp - 0x28], 0xffffffff
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + eax*4 - 0x644]
mov eax, dword [ebp - 0x24]
cmp ecx, dword [ebp + eax*4 - 0x644]
jle 0x100396cd
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x644], edx
mov eax, edx
je 0x100396cf
mov eax, ebx
mov dword [ebp - 0x28], eax
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x100396ea
push 0x5c7
push 0x26d3
push edx
call esi
xor edx, edx
dec dword [ebp - 0x24]
jns 0x100396a2
push 4
pop ecx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edx
jmp 0x1003970b
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x660], 0x40d7f825
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x100396fa
mov dword [ebp - 0x24], 3
cmp dword [ebp - 0x24], edx
jl 0x10039769
mov dword [ebp - 0x28], 0xffffffff
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + eax*4 - 0x660]
mov eax, dword [ebp - 0x24]
cmp ecx, dword [ebp + eax*4 - 0x660]
jle 0x10039747
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x660], edx
mov eax, edx
je 0x10039749
mov eax, ebx
mov dword [ebp - 0x28], eax
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x10039764
push 0x5c7
push 0x26d3
push edx
call esi
xor edx, edx
dec dword [ebp - 0x24]
jns 0x1003971c
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x14], 0xfffffffe
jmp 0x10039792
mov dword [ebp - 0x20], 0x71d976ff
mov dword [ebp - 0x20], edx
jmp 0x10039789
cmp dword [ebp - 0x20], edx
jne 0x1003978f
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffffb
jg 0x10039781
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x16
jne 0x10039775
mov dword [ebp - 0x14], edx
jmp 0x100397c9
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x100397af
push edx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
xor edx, edx
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x100397c6
push edx
push 0xac
call dword [sym.imp.USER32.dll_GetWindowPlacement]
xor edx, edx
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffff9
je 0x1003979d
push 4
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x20], edx
pop ecx
jmp 0x100397eb
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x67c], 0x40d7f825
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x100397da
mov dword [ebp - 0x18], 5
lea ecx, [ebp - 0x4e0]
push ebx
call fcn.1002a894
xor edx, edx
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x20], edx
jmp 0x10039824
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x4e0]
mov dword [eax + ecx*4], 0xfa8fad74
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x10039811
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x15
jne 0x1003988f
push 4
pop esi
mov dword [ebp - 0x34], 0x307d
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
imul ecx, dword [ebp - 0x18], 0x810cfea6
mov eax, dword [ebp - 0x34]
cmp ecx, eax
setge dl
add edx, dword [ebp - 0x18]
je 0x1003986a
mov dword [ebp - 0x28], 0x32cf415d
mov dword [ebp - 0x34], esi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
jmp 0x10039880
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x10039889
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], al
je 0x10039880
push eax
call dword [sym.imp.USER32.dll_DestroyAcceleratorTable]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x15
je 0x10039835
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [ebp - 0x18]
xor edx, edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setge cl
cmp ebx, ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, ecx
mov eax, dword [ebp - 0x4e0]
setge dl
xor ecx, ecx
mov dword [eax], edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
test eax, eax
mov eax, 0xffff
setns cl
sub ecx, dword [ebp - 0x24]
add ecx, eax
je 0x100398e4
cmp dword [ebp - 0x18], 0
je 0x100398e4
mov eax, ebx
jmp 0x100398e6
xor eax, eax
mov ecx, dword [ebp - 0x18]
cmp eax, 0xbadcab39
sbb eax, eax
xor edx, edx
inc eax
sub ecx, eax
mov eax, dword [ebp - 0x24]
cmp ecx, eax
lea ecx, [ebp - 0x4e0]
setge dl
sub edx, dword [ebp - 0x24]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
imul eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
call fcn.1002a9ee
mov dword [ebp - 0x20], 3
xor edx, edx
mov eax, 0xfffa
cmp dword [ebp - 0x20], edx
jl 0x10039f82
mov edi, 0x10008528
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edx
je 0x10039a63
mov dword [ebp - 0x18], 5
mov dword [ebp - 0x24], 0x75123020
mov dword [ebp - 0x24], edx
jmp 0x10039982
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x5b4], 0x4fa72d50
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x10039971
cmp dword [ebp - 0x14], edx
je 0x100399a7
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
je 0x10039998
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setge dl
xor ecx, ecx
imul edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0xf758
setl al
mov dword [ebp - 0x5b4], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor eax, eax
cmp dword [ebp - 0x14], eax
jne 0x100399f1
cmp dword [ebp - 0x5ac], eax
je 0x100399f3
mov eax, ebx
mov ecx, dword [ebp - 0x14]
xor edx, edx
imul ecx, eax
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, 0xc8d535dd
setle dl
cmp eax, edx
sbb eax, eax
neg eax
xor edx, edx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x24], 0xfffffffe
jmp 0x10039a5b
mov dword [ebp - 0x18], edx
jmp 0x10039a37
cmp byte [ebp - 0xd], 0
je 0x10039a34
push 0x10c7
call dword [sym.imp.GDI32.dll_RealizePalette]
xor edx, edx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x3c
mov byte [ebp - 0xd], dl
jge 0x10039a21
cmp byte [ebp - 0xd], 0
je 0x10039a58
push 0x14bb
push 0x18b3
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
xor edx, edx
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe7
je 0x10039a1c
jmp 0x10039a7f
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x10039a7f
push edx
push 0x1f78
push 0xcb9
call dword [sym.imp.KERNEL32.dll_GetCPInfoExW]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + eax*4 - 0x67c]
mov eax, dword [ebp - 0x20]
cmp ecx, dword [ebp + eax*4 - 0x67c]
jle 0x10039aa3
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x67c], edx
mov eax, edx
je 0x10039aa5
mov eax, ebx
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x534]
push 3
mov dword [ebp - 0x3c], 0xa53d06ce
pop eax
mov dword [ebp - 0x2c], 0xdf251d69
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], 0x2e4ed383
push eax
call fcn.1002a894
and dword [ebp - 4], 0
lea ecx, [ebp - 0x51c]
push 3
call fcn.1002a894
xor edx, edx
mov dword [ebp - 0x14], edx
jmp 0x10039af6
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x534]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10039ae7
mov dword [ebp - 0x14], edx
jmp 0x10039b14
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x51c]
mov dword [eax + ecx*4], 0xd027baed
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10039b01
inc dword [ebp - 0x24]
push 6
pop eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], eax
jg 0x10039e4b
jmp 0x10039b30
xor edx, edx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x55a5481
mov dword [ebp - 0x14], edx
jmp 0x10039b50
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x218], 0xb6b7be2d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10039b3f
mov dword [ebp - 0x14], edx
jmp 0x10039b68
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x90], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10039b5b
mov eax, dword [ebp - 0x18]
mov ecx, 0x67f8b4df
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
sub ecx, eax
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], 0xfffffffd
cmp dword [ebp - 0x1c], edx
je 0x10039c42
mov dword [ebp - 0x34], 0x7f1b
mov dword [ebp - 0x14], edx
jmp 0x10039bbf
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x3f0], 0x1c73b017
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10039bae
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov dword [ebp - 0x218], eax
mov ecx, dword [ebp - 0x3f0]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
sete cl
xor edx, edx
cmp eax, ecx
setge dl
sub edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x218]
mov eax, dword [ebp - 0x90]
add ecx, edx
dec dword [ebp - 0x90]
cmp eax, ecx
jge 0x10039c11
mov ecx, ebx
jmp 0x10039c13
xor ecx, ecx
mov eax, dword [ebp - 0x534]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x3f0]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x218]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x14], eax
jmp 0x10039e3c
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], edx
jl 0x10039c7c
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], edx
jg 0x10039c77
mov ecx, dword [ebp - 0x51c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x218]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jle 0x10039c58
dec dword [ebp - 0x14]
jns 0x10039c4a
mov byte [ebp - 0xd], dl
mov dword [ebp - 0x28], 0x1d3e
cmp dword [ebp - 0x28], 0x1239
jge 0x10039e30
lea eax, [ebp - 0x98]
mov dword [ebp - 0x98], edx
push eax
xorps xmm0, xmm0
push 0x10008150
movsd qword [ebp - 0x118], xmm0
call fcn.1004eb00
pop ecx
pop ecx
xorps xmm0, xmm0
jmp 0x10039ce1
dec eax
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x118]
push eax
push edi
call fcn.1004eb00
movsd xmm0, qword [ebp - 0x118]
comisd xmm0, xmmword [ebp - 0x68]
pop ecx
pop ecx
jbe 0x10039ce6
movsd qword [ebp - 0x68], xmm0
mov eax, dword [ebp - 0x98]
test eax, eax
jne 0x10039cbc
and dword [ebp - 0x8c], 0
dec eax
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x8c]
push eax
push 0x10008150
call fcn.1004eb00
pop ecx
pop ecx
xorps xmm0, xmm0
jmp 0x10039d3b
dec eax
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x118]
push eax
push edi
call fcn.1004eb00
movsd xmm0, qword [ebp - 0x118]
comisd xmm0, xmmword [ebp - 0x48]
pop ecx
pop ecx
jbe 0x10039d40
movsd qword [ebp - 0x48], xmm0
mov eax, dword [ebp - 0x8c]
test eax, eax
jne 0x10039d16
and dword [ebp - 0xa4], 0
dec eax
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0xa4]
push eax
push 0x10008150
call fcn.1004eb00
movsd xmm0, qword [0x10008800]
pop ecx
pop ecx
movsd qword [ebp - 0x58], xmm0
jmp 0x10039da8
dec eax
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0x118]
push eax
push edi
call fcn.1004eb00
movsd xmm1, qword [ebp - 0x118]
movsd xmm0, qword [ebp - 0x58]
comisd xmm0, xmm1
pop ecx
pop ecx
jbe 0x10039da8
movsd qword [ebp - 0x58], xmm1
mov eax, dword [ebp - 0xa4]
test eax, eax
jne 0x10039d7a
dec eax
xorps xmm0, xmm0
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0x400]
push eax
lea eax, [ebp - 0x3e8]
movsd qword [ebp - 0x3e8], xmm0
push eax
push 0x1000852c
movsd qword [ebp - 0x400], xmm0
call fcn.1004eb00
movsd xmm1, qword [ebp - 0x400]
add esp, 4
movsd xmm0, qword [ebp - 0x3e8]
mulsd xmm1, qword [ebp - 0x48]
mulsd xmm0, qword [ebp - 0x58]
addsd xmm0, xmm1
divsd xmm1, xmm0
movsd qword [esp], xmm1
call fcn.1004c764
fmul qword [ebp - 0x68]
fstp qword [ebp - 0x48]
movsd xmm0, qword [ebp - 0x48]
movsd qword [esp], xmm0
push 0x100081d4
call fcn.1004ef5e
add esp, 0xc
cmp byte [ebp - 0xd], 0
je 0x10039e3c
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
inc dword [ebp - 0x3c]
push 6
pop eax
cmp dword [ebp - 0x3c], eax
jle 0x10039b2e
lea ecx, [ebp - 0x51c]
call fcn.1002a9ee
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x534]
call fcn.1002a9ee
xor edx, edx
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], dl
je 0x10039f74
mov dword [ebp - 0x3c], 0x45d811f0
lea ecx, [ebp - 0x394]
push 2
call fcn.1002a894
mov dword [ebp - 0x1c], ebx
xor edx, edx
mov dword [ebp - 0x34], 3
mov dword [ebp - 0x28], 0xfd579deb
mov dword [ebp - 0x24], edx
jmp 0x10039eb2
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x394]
mov dword [eax + ecx*4], 0xe124dc41
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x10039e9f
imul eax, dword [ebp - 0x3c], 0x3e05
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x3c]
jg 0x10039ed3
cmp dword [ebp - 0x3c], edx
je 0x10039ed3
mov edx, ebx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp edx, eax
push 4
setg cl
xor edx, edx
cmp ecx, 0xedca8fec
pop eax
setne dl
cmp dword [ebp - 0x3c], eax
sbb eax, eax
xor ecx, ecx
inc eax
add eax, edx
mov edx, dword [ebp - 0x394]
cmp eax, 0x5154
setg cl
mov dword [edx], eax
xor eax, eax
mov dword [ebp - 0x1c], ecx
cmp dword [edx], eax
jne 0x10039f15
mov ecx, eax
cmp dword [ebp - 0x1c], eax
je 0x10039f17
mov ecx, ebx
xor eax, eax
cmp ecx, 0xffffffff
setg al
cmp eax, dword [ebp - 0x34]
jne 0x10039f27
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0xd850
setne cl
xor eax, eax
cmp ecx, 0xffffffff
setge al
imul ecx, eax, 6
mov eax, dword [ebp - 0x394]
mov dword [eax], ecx
lea ecx, [ebp - 0x394]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], eax
call fcn.1002a9ee
push 0x5c7
push 0x26d3
push 0
call esi
xor edx, edx
dec dword [ebp - 0x20]
mov eax, 0xfffa
jns 0x1003994b
push 2
lea ecx, [ebp - 0x600]
call fcn.1002a894
push 8
pop eax
xor edx, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], edx
jmp 0x10039faf
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x600]
mov dword [eax + ecx*4], 0x9b55bb2c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10039f9c
mov dword [ebp - 0x20], edx
mov edi, 0x1784
cmp dword [ebp - 0x20], ebx
mov ebx, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
jg 0x10039fe3
xor esi, esi
inc esi
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x10039fd9
push edi
call ebx
xor edx, edx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jle 0x10039fcb
jmp 0x10039fe6
xor esi, esi
inc esi
lea ecx, [ebp - 0x600]
call fcn.1002a9ee
push 2
lea ecx, [ebp - 0x750]
call fcn.1002a894
xor edx, edx
mov dword [ebp - 0x20], 8
mov dword [ebp - 0x20], edx
jmp 0x1003a01f
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x750]
mov dword [eax + ecx*4], 0x9b55bb2c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003a00c
mov dword [ebp - 0x20], edx
jmp 0x1003a03b
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x1003a038
push edi
call ebx
xor edx, edx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jle 0x1003a02a
lea ecx, [ebp - 0x750]
call fcn.1002a9ee
push 0xfffffffffffffff8
pop eax
mov dword [ebp - 0x38], eax
xor ebx, ebx
mov dword [ebp - 0x44], 0xd416db6
inc ebx
push 8
pop edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x20], 0x31d8b9db
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x2c], 0xca8cda2a
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x44], 0x48b1647c
mov dword [ebp - 0x30], 0xf495e3b3
mov dword [ebp - 0x44], 0xfffffff9
mov dword [ebp - 0x44], 0xbdb979cd
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 9
mov dword [ebp - 0x28], 0x20cf
cmp dword [ebp - 0x28], 0x442
jge 0x1003a240
lea eax, [ebp - 0xb4]
push eax
push 0x10008150
call fcn.1004eb00
mov eax, dword [ebp - 0xb4]
pop ecx
pop ecx
test eax, eax
je 0x1003a239
mov byte [ebp - 0x69], bl
dec eax
push 0x10008174
mov dword [ebp - 0xb4], eax
call fcn.1004f342
pop ecx
lea eax, [ebp - 0x69]
push eax
push 0xb
lea ecx, [ebp - 0x698]
call fcn.1002ab6b
lea eax, [ebp - 0x94]
mov dword [ebp - 4], ebx
push eax
push 0x10008150
call fcn.1004eb00
pop ecx
pop ecx
push dword [ebp - 0x94]
lea ecx, [ebp - 0x388]
call fcn.1002a894
mov edi, dword [ebp - 0x94]
xor eax, eax
mov ebx, eax
test edi, edi
jle 0x1003a154
mov esi, dword [ebp - 0x388]
push esi
push 0x10008154
call fcn.1004eb00
mov edi, dword [ebp - 0x94]
inc ebx
pop ecx
pop ecx
push 4
pop eax
add esi, eax
cmp ebx, edi
jl 0x1003a135
xor eax, eax
mov ecx, eax
xor ebx, ebx
mov dword [ebp - 0x1c], ecx
inc ebx
cmp ecx, edi
jge 0x1003a200
mov dword [ebp - 0x34], eax
test edi, edi
jle 0x1003a199
mov ecx, dword [ebp - 0x388]
mov edx, dword [ebp - 0x698]
mov ecx, dword [ecx + eax*4]
xor eax, eax
add ecx, ebx
inc eax
mov esi, ecx
and ecx, 0x1f
shr esi, 5
shl eax, cl
test dword [edx + esi*4], eax
je 0x1003a1f0
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, edi
jl 0x1003a16b
push ebx
push 0x10008194
call fcn.1004ef5e
mov edi, dword [ebp - 0x94]
xor eax, eax
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], ecx
test edi, edi
jle 0x1003a1f3
mov ecx, dword [ebp - 0x388]
mov edx, dword [ebp - 0x698]
mov ecx, dword [ecx + eax*4]
xor eax, eax
add ecx, ebx
inc eax
mov esi, ecx
and ecx, 0x1f
shr esi, 5
shl eax, cl
not eax
and dword [edx + esi*4], eax
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x94]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, edi
jl 0x1003a1bc
mov ecx, dword [ebp - 0x1c]
inc ebx
push 0
pop eax
cmp ebx, 0xb
jl 0x1003a15c
push 0x100080bd
call fcn.1004f342
pop ecx
lea ecx, [ebp - 0x388]
call fcn.1002a9ee
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x698]
call fcn.1002abcc
mov eax, dword [ebp - 0xb4]
push 1
pop ebx
test eax, eax
jne 0x1003a0d7
push 8
pop edi
dec eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x44], 0x2c4475ee
xor edx, edx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 0x9cc099a5
mov dword [ebp - 0x14], edx
jmp 0x1003a269
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x168], 0xfffffffa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1003a258
push 4
mov dword [ebp - 0x14], edx
pop ecx
jmp 0x1003a287
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7b4], 0x1ac7eb23
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1003a276
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], dl
je 0x1003a2ae
push 0x1a17
push 0x7b7
push 0x163e
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push 4
xor edx, edx
pop ecx
dec dword [ebp - 0x7ac]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x168]
mov eax, dword [ebp - 0x168]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x20], edx
jmp 0x1003a2f1
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1f8], 0x26bdde0b
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003a2e0
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], ebx
jg 0x1003a42f
mov esi, 0xeb5ea28c
mov dword [ebp - 0x24], 0x5a60d005
mov dword [ebp - 0x3c], 0xfffffff7
mov dword [ebp - 0x20], edx
jmp 0x1003a32c
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x854], 0x37c04ccb
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x1003a31b
mov eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x14]
mov dword [ebp - 0x84c], eax
mov dword [ebp - 0x18], 0x1456b864
mov dword [ebp - 0x3c], edx
jmp 0x1003a407
mov dword [ebp - 0x20], 0xcd5c
mov dword [ebp - 0x24], edx
jmp 0x1003a3fa
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x1f8], edx
jne 0x1003a3c0
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
neg eax
je 0x1003a37e
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x1f8], esi
mov edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, esi
setl cl
sub eax, ecx
je 0x1003a3a9
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, 0xfffa
cmp ecx, eax
sbb eax, eax
xor edx, edx
neg eax
cmp eax, dword [ebp - 0x14]
mov eax, edx
je 0x1003a3c2
mov eax, ebx
cmp eax, dword [ebp - 0x14]
je 0x1003a3cc
dec dword [ebp - 0x20]
jmp 0x1003a3f7
mov dword [ebp - 0x20], edx
jmp 0x1003a3f2
mov dword [ebp - 0x28], 0x473ecfb8
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x1003a3ea
push edx
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
xor edx, edx
cmp dword [ebp - 0x28], edx
jne 0x1003a3f7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x1003a3d1
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jle 0x1003a35c
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], ebx
jle 0x1003a34d
mov ecx, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x14]
push 4
mov dword [ebp + eax*4 - 0x1f8], ecx
inc dword [ebp - 0x14]
pop ecx
cmp dword [ebp - 0x14], ebx
jle 0x1003a308
mov dword [ebp - 0x20], edx
lea ecx, [ebp - 0x614]
mov dword [ebp - 0x44], 0x8256a9ef
mov dword [ebp - 0x44], 0x801fc3ee
mov dword [ebp - 0x44], 0xfffffffd
push 2
call fcn.1002a894
xor edx, edx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x20], edx
jmp 0x1003a471
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x614]
mov dword [eax + ecx*4], 0x121ac488
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003a45e
mov dword [ebp - 0x20], edx
jmp 0x1003a498
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x1003a495
push edx
push edx
push 0x113
push edx
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
xor edx, edx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 5
jne 0x1003a47c
inc dword [ebp - 0x34]
lea ecx, [ebp - 0x614]
call fcn.1002a9ee
push 2
lea ecx, [ebp - 0x76c]
call fcn.1002a894
mov dword [ebp - 4], 2
xor ecx, ecx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x1c], 0x136951ad
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x20], ecx
jmp 0x1003a4e5
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x790], 0xc0ae9714
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x1003a4d4
mov byte [ebp - 0xd], cl
cmp byte [ebp - 0xd], cl
je 0x1003a4fb
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], ecx
jl 0x1003a557
mov dword [ebp - 0x20], ecx
jmp 0x1003a519
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x210], 0x7a00f47a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003a508
mov dword [ebp - 0x210], ecx
cmp dword [ebp - 0x210], ecx
jl 0x1003a552
mov byte [ebp - 0xd], cl
cmp byte [ebp - 0xd], 0
je 0x1003a54a
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
xor ecx, ecx
dec dword [ebp - 0x210]
jns 0x1003a52d
dec dword [ebp - 0x1c]
jns 0x1003a503
push 2
lea ecx, [ebp - 0x10c]
call fcn.1002a894
push 3
mov dword [ebp - 0x34], 0xffffffff
xor edx, edx
pop ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x14], edx
jmp 0x1003a589
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x248], 0x648261f9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1003a578
mov dword [ebp - 0x14], edx
jmp 0x1003a5a6
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10c]
mov dword [eax + ecx*4], 0xd29be1d9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1003a593
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], dl
je 0x1003a5c2
push 0x1f26
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xor edx, edx
mov eax, dword [ebp - 0x10c]
mov dword [eax], edx
mov dword [ebp - 0x14], 0x887cf2e5
mov dword [ebp - 0x34], 0x16e074f0
mov dword [ebp - 0x20], edx
jmp 0x1003a5ee
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x28c], 0xfffffffe
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003a5dd
mov dword [ebp - 0x14], 2
cmp dword [ebp - 0x14], edx
jl 0x1003a70c
mov edi, dword [ebp - 0x10c]
mov dword [ebp - 0x34], 0xbbfad0d7
mov dword [ebp - 0x34], 0x800f4d4e
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x248]
mov eax, dword [ebp - 0x10c]
cmp dword [eax], edx
je 0x1003a633
mov ecx, ebx
cmp dword [ebp - 0x14], edx
jne 0x1003a635
mov ecx, edx
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0x248]
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0x248]
mov eax, 0xf5f40e13
cmp eax, ecx
sbb eax, eax
add eax, 2
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x288], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
cmp eax, dword [edi + 4]
jl 0x1003a68b
mov eax, edx
cmp dword [ebp - 0x288], edx
je 0x1003a68d
mov eax, ebx
add eax, 0xffff061a
xor ecx, ecx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x10c]
push 0
mov esi, dword [eax]
mov eax, dword [ebp - 0x34]
sub eax, 0x77fefb
cmp eax, 0xaaa4
mov eax, dword [ebp - 0x14]
setle cl
xor edx, edx
neg ecx
test ecx, ecx
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp + esi*4 - 0x248]
setle cl
xor edx, edx
add ecx, 0x1033
cmp ecx, esi
setge dl
xor ecx, ecx
cmp edx, eax
pop edx
setl cl
mov dword [ebp - 0x34], ecx
mov ecx, 0x3705e4bc
mov eax, dword [ebp - 0x34]
sub ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x248], ecx
dec dword [ebp - 0x14]
jns 0x1003a60a
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax]
cmp dword [ebp + eax*4 - 0x248], edx
jne 0x1003a72e
mov eax, dword [ebp - 0x10c]
inc dword [eax]
cmp dword [eax], 2
jle 0x1003a5ca
lea ecx, [ebp - 0x10c]
call fcn.1002a9ee
xor edx, edx
mov dword [ebp - 0x20], edx
jmp 0x1003a753
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x76c]
mov dword [eax + ecx*4], 0x9b55bb2c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003a740
mov dword [ebp - 0x1c], edx
jmp 0x1003af0d
mov dword [ebp - 0x14], 0xac204e2d
lea ecx, [ebp - 0x54c]
push 2
call fcn.1002a894
push 4
pop ecx
mov dword [ebp - 0x28], ecx
xor edx, edx
mov dword [ebp - 0x28], 0xfffffffb
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 2
jge 0x1003a7a5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x54c]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1003a78d
push 4
pop ecx
mov dword [ebp - 0x14], edx
jmp 0x1003a7bb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6b4], 8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1003a7aa
mov dword [ebp - 0x14], 0x13
jmp 0x1003a850
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x14], edx
jne 0x1003a85a
mov dword [ebp - 0x24], 0xfffffffa
jmp 0x1003a847
mov dword [ebp - 0x20], 0x985a9576
mov dword [ebp - 0x20], 0xfffffffd
jmp 0x1003a83e
mov dword [ebp - 0x3c], 0xfffffff8
mov dword [ebp - 0x3c], ebx
cmp dword [ebp - 0x3c], edx
jl 0x1003a83b
mov dword [ebp - 0x38], 0x15898f01
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x38], edx
jl 0x1003a836
mov dword [ebp - 0x34], 0xfffffff6
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x1003a82e
push edx
push edx
push edx
push edx
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
xor edx, edx
dec dword [ebp - 0x34]
dec dword [ebp - 0x38]
jns 0x1003a812
dec dword [ebp - 0x3c]
jns 0x1003a803
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1c
jg 0x1003a7f4
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffef
jne 0x1003a7e4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1a
je 0x1003a7cc
cmp dword [ebp - 0x6b0], edx
je 0x1003a88a
mov eax, dword [ebp - 0x54c]
cmp dword [eax], edx
je 0x1003a877
cmp dword [ebp - 0x6b0], edx
jne 0x1003a877
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x6b0]
mov eax, ebx
cmp dword [ebp - 0x14], edx
jne 0x1003a88c
mov eax, edx
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x54c]
call fcn.1002a9ee
mov dword [ebp - 0x14], 0x2d5e48d3
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x34], 0x737b78f1
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 0xffffffed
jge 0x1003ad05
lea eax, [ebp - 0x580]
lea ecx, [ebp - 0x570]
push ecx
push ecx
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0x665683c8
push eax
lea ecx, [ebp - 0x26c]
movdqu xmmword [ebp - 0x580], xmm0
call fcn.1002a8f2
mov byte [ebp - 4], 3
xor edx, edx
mov dword [ebp - 0x4c], 0xffffffff
mov dword [ebp - 0x3c], edx
jmp 0x1003acd3
mov dword [ebp - 0x24], 0x5b40194
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x24], 0xffffffeb
jmp 0x1003acc6
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 0x1d38
cmp dword [ebp - 0x28], 0x81e
jge 0x1003ab69
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x9c], edx
call fcn.1002ea17
mov dword [ebp - 0xa0], eax
push 4
pop eax
mov byte [ebp - 4], al
xor eax, eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
call fcn.1002ea17
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 5
and dword [ebp - 0xc4], 0
push eax
push 0x10008150
call fcn.1004eb00
xor edi, edi
pop ecx
pop ecx
cmp dword [ebp - 0x178], edi
jle 0x1003aab3
lea eax, [ebp - 0x1b4]
push eax
lea eax, [ebp - 0x170]
push eax
push 0x1000818c
call fcn.1004eb00
add esp, 0xc
lea ecx, [ebp - 0xa0]
call fcn.10045c72
lea ecx, [ebp - 0xac]
call fcn.10045c72
xor esi, esi
cmp dword [ebp - 0x170], esi
jle 0x1003a9fe
lea eax, [ebp - 0xc0]
push eax
push 0x10008150
call fcn.1004eb00
pop ecx
pop ecx
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebp - 0xa0]
call fcn.10045c0b
inc esi
mov byte [eax], bl
cmp esi, dword [ebp - 0x170]
jl 0x1003a9ce
xor esi, esi
cmp dword [ebp - 0x1b4], esi
jle 0x1003aa38
lea eax, [ebp - 0xc0]
push eax
push 0x10008150
call fcn.1004eb00
pop ecx
pop ecx
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebp - 0xac]
call fcn.10045c0b
inc esi
mov byte [eax], bl
cmp esi, dword [ebp - 0x1b4]
jl 0x1003aa08
mov ecx, dword [ebp - 0xa0]
xor bl, bl
mov eax, dword [ecx]
mov dword [ebp - 0xc4], eax
cmp eax, ecx
je 0x1003aa98
lea esi, [eax + 0x10]
push esi
lea ecx, [ebp - 0xac]
call fcn.10045c0b
cmp byte [eax], 0
je 0x1003aa7f
test bl, bl
je 0x1003aa6f
push 0x10008244
call fcn.1004ef5e
pop ecx
push dword [esi]
mov bl, 1
push 0x10008150
call fcn.1004ef5e
pop ecx
pop ecx
lea ecx, [ebp - 0xc4]
call fcn.1002e32c
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0xa0]
jne 0x1003aa4c
push 0x10008484
call fcn.1004ef5e
pop ecx
inc edi
push 1
pop ebx
cmp edi, dword [ebp - 0x178]
jl 0x1003a993
mov edi, dword [ebp - 0xac]
mov esi, dword [edi]
mov dword [ebp - 0x1b8], esi
cmp esi, esi
jne 0x1003aad2
lea ecx, [ebp - 0xac]
call fcn.10045c72
jmp 0x1003aafe
cmp esi, edi
je 0x1003ab04
lea ecx, [ebp - 0x1b8]
call fcn.1002e32c
push esi
lea eax, [ebp - 0x618]
push eax
lea ecx, [ebp - 0xac]
call fcn.1002cc10
mov esi, dword [ebp - 0x1b8]
cmp esi, edi
jne 0x1003aad6
mov edi, dword [ebp - 0xac]
push edi
call fcn.1004f129
mov byte [ebp - 4], 3
mov edi, dword [ebp - 0xa0]
pop ecx
mov esi, dword [edi]
mov dword [ebp - 0x180], esi
cmp esi, esi
jne 0x1003ab2e
lea ecx, [ebp - 0xa0]
call fcn.10045c72
jmp 0x1003ab5a
cmp esi, edi
je 0x1003ab60
lea ecx, [ebp - 0x180]
call fcn.1002e32c
push esi
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0xa0]
call fcn.1002cc10
mov esi, dword [ebp - 0x180]
cmp esi, edi
jne 0x1003ab32
mov edi, dword [ebp - 0xa0]
push edi
call fcn.1004f129
pop ecx
xor edx, edx
mov dword [ebp - 0x20], edx
jmp 0x1003ab7f
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xd0], 0xe05a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x1003ab6e
mov dword [ebp - 0x20], edx
jmp 0x1003ac6b
mov dword [ebp - 0x38], 0x5e3edfa8
mov dword [ebp - 0x28], 0xfffffff7
mov dword [ebp - 0x38], edx
jmp 0x1003ac5e
mov dword [ebp - 0x18], edx
jmp 0x1003abb8
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x124], 0xa8b35eda
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1003aba7
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x26c]
mov dword [eax + ecx*4], 7
mov dword [ebp - 0x11c], edx
cmp dword [ebp - 0x11c], 3
jg 0x1003ac5b
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x26c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x24], edx
jne 0x1003ac00
mov eax, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x11c]
mov esi, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x2c]
push 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esi + edi*4], eax
sub edx, dword [esi + edi*4]
mov eax, dword [ebp - 0xd0]
cmp edx, eax
pop edx
setge cl
mov dword [ebp - 0x30], ecx
inc dword [ebp - 0x11c]
cmp dword [ebp - 0x11c], 3
jle 0x1003abdd
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 3
jle 0x1003aba2
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jle 0x1003ab8c
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0xfffffff0
jle 0x1003acc3
mov esi, dword [ebp - 0x26c]
mov byte [ebp - 0xd], dl
cmp byte [ebp - 0xd], 0
je 0x1003ac96
push edx
call dword [sym.imp.USER32.dll_RegisterClassW]
xor edx, edx
cmp dword [ebp - 0x2c], edx
je 0x1003ac9e
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x3c]
mov dword [esi + 4], 0x7fc3fe76
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffff0
jg 0x1003ac84
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe9
je 0x1003a917
dec dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0xffffffe2
jle 0x1003a901
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 2
call fcn.1002a9ee
dec dword [ebp - 0x14]
lea eax, [ebp - 0x580]
cmp dword [ebp - 0x14], 0xffffffed
lea ecx, [ebp - 0x570]
jl 0x1003a8cc
mov byte [ebp - 0xd], 0
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x18], 8
push 2
call fcn.1002a894
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x570]
push 4
mov dword [ebp - 0x20], ebx
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], 0xfffffffd
mov dword [ebp - 0x24], 0x9a488d5
mov dword [ebp - 0x34], 0x17a3
mov dword [ebp - 0x2c], 0xbf5ee879
push 2
call fcn.1002a894
xor edx, edx
mov dword [ebp - 0x14], edx
jmp 0x1003ad6d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x284]
mov dword [eax + ecx*4], 0x157736d0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1003ad5a
mov dword [ebp - 0x14], edx
jmp 0x1003ad8b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x570]
mov dword [eax + ecx*4], 0x949389d0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1003ad78
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x18]
jl 0x1003aded
mov eax, dword [ebp - 0x284]
xor ecx, ecx
cmp dword [eax], 0xf63588c5
mov eax, dword [ebp - 0x18]
setne cl
xor edx, edx
add eax, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x3c]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x284]
setge cl
xor edx, edx
cmp ecx, dword [eax + 4]
setge dl
xor eax, eax
cmp eax, edx
mov eax, dword [ebp - 0x38]
sbb ecx, ecx
neg ecx
add eax, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
xor edx, edx
test eax, eax
mov eax, dword [ebp - 0x18]
setns dl
xor ecx, ecx
cmp edx, eax
setge cl
neg ecx
jne 0x1003ae0c
xor eax, eax
cmp dword [ebp - 0x38], eax
je 0x1003ae0e
mov eax, ebx
mov ecx, dword [ebp - 0x38]
xor edx, edx
imul ecx, eax
mov eax, dword [ebp - 0x18]
sub ecx, 0x63b88216
cmp eax, ecx
setl dl
sub edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
jne 0x1003ae93
xor ecx, ecx
cmp dword [ebp - 0x18], ecx
jne 0x1003ae8e
mov dword [ebp - 0x2c], 0x4c92
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x3c]
jle 0x1003ae6b
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x284]
mov eax, dword [eax]
neg eax
mov dword [ebp - 0x24], eax
imul eax, dword [ebp - 0x20], 0xfffd
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], ecx
je 0x1003ae95
mov ecx, ebx
mov eax, dword [ebp - 0x284]
mov eax, dword [eax]
add eax, 0x106cf363
add ecx, eax
mov eax, dword [ebp - 0x570]
mov dword [eax], ecx
lea ecx, [ebp - 0x570]
call fcn.1002a9ee
lea ecx, [ebp - 0x284]
mov byte [ebp - 4], 2
call fcn.1002a9ee
cmp byte [ebp - 0xd], 0
je 0x1003af0a
mov dword [ebp - 0x38], ebx
xor eax, eax
mov dword [ebp - 0x38], 0xfffffff2
cmp dword [ebp - 0x38], 0x14
jge 0x1003aeef
mov dword [ebp - 0x28], 0x71d976ff
cmp dword [ebp - 0x28], eax
jne 0x1003aeef
inc dword [ebp - 0x38]
jmp 0x1003aed8
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x1003aeff
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push 0x1784
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jle 0x1003a761
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x76c]
call fcn.1002a9ee
push 0xfffffffffffffff8
pop eax
mov dword [ebp - 0x30], eax
xor ecx, ecx
mov dword [ebp - 0x44], 0xd416db6
mov dword [ebp - 0x28], 8
mov dword [ebp - 0x4c], 0x31d8b9db
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x2c], 0xca8cda2a
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x44], 0x48b1647c
mov dword [ebp - 0x34], 0xf495e3b3
mov dword [ebp - 0x44], 0xfffffff9
mov dword [ebp - 0x44], 0xbdb979cd
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 9
mov dword [ebp - 0x44], 0x2c4475ee
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 0x9cc099a5
mov dword [ebp - 0x14], ecx
jmp 0x1003afa0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1c0], 0xfffffffa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1003af8f
push 4
mov dword [ebp - 0x14], ecx
pop edx
jmp 0x1003afbe
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x804], 0x1ac7eb23
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x1003afad
mov byte [ebp - 0xd], cl
cmp byte [ebp - 0xd], cl
je 0x1003afe0
push 0x1a17
push 0x7b7
push 0x163e
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
dec dword [ebp - 0x7fc]
lea ecx, [ebp - 0x18c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
push 2
call fcn.1002a894
push 4
pop eax
mov dword [ebp - 4], 7
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x18], 0
push eax
call fcn.1002a894
xor edx, edx
mov dword [ebp - 0x28], 5
mov dword [ebp - 0x18], edx
jmp 0x1003b04f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xdc], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1003b042
mov dword [ebp - 0x18], edx
jmp 0x1003b06d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18c]
mov dword [eax + ecx*4], 0xde19d29b
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1003b05a
mov dword [ebp - 0x18], edx
jmp 0x1003b08b
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x160]
mov dword [eax + ecx*4], 0xd5493e6
inc dword [ebp - 0x18]
push 4
pop eax
cmp dword [ebp - 0x18], eax
jl 0x1003b078
mov dword [ebp - 0x18], edx
jmp 0x1003b0a9
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x260], 0x4e2095e0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1003b098
mov eax, dword [ebp - 0x18c]
mov dword [eax], edx
mov dword [ebp - 0x14], 0x4e6d4f28
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 2
jg 0x1003b156
mov edi, dword [ebp - 0x18c]
mov esi, dword [ebp - 0x160]
mov eax, dword [ebp - 0xd8]
xor ecx, ecx
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x14]
sub edx, dword [edi + 4]
mov eax, dword [ebp + eax*4 - 0xdc]
sub edx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0xdc]
cmp eax, edx
mov eax, dword [ebp - 0x18c]
sete cl
xor edx, edx
mov eax, dword [eax]
cmp dword [ebp + eax*4 - 0xdc], ecx
jge 0x1003b11d
mov eax, ebx
cmp dword [ebp - 0x14], edx
jne 0x1003b11f
mov eax, edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0xdc], 0xf5872d9e
mov eax, dword [ebp - 0x18c]
sbb ecx, ecx
neg ecx
sub ecx, dword [eax]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esi + 0xc], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x1003b0d7
mov eax, dword [ebp - 0x18c]
inc dword [eax]
cmp dword [eax], 2
jle 0x1003b0b7
mov dword [ebp - 0x18], edx
jmp 0x1003b265
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x34], 2
mov dword [ebp - 0x34], 0xfffffffb
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x160]
mov edx, dword [ebp - 0xd8]
sub edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x25c]
sub edx, eax
je 0x1003b1a9
mov eax, dword [ebp - 0x25c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x258]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x160]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18c]
mov dword [eax], ecx
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x160]
imul ecx, dword [eax + edx*4]
xor edx, edx
mov eax, dword [ebp - 0x25c]
cmp ecx, 0x6dc75df6
setge dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x160]
cmp edx, dword [eax + esi*4]
mov eax, dword [ebp - 0x25c]
setge cl
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setge dl
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x160]
mov edx, dword [ebp - 0x34]
sub edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x25c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x18]
jne 0x1003b247
mov eax, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x34], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x1003b16f
lea ecx, [ebp - 0x160]
call fcn.1002a9ee
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18c]
call fcn.1002a9ee
push 2
lea ecx, [ebp - 0x1b0]
call fcn.1002a894
push 4
pop eax
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x19c]
mov dword [ebp - 0x18], 0
push eax
call fcn.1002a894
xor edx, edx
mov dword [ebp - 0x28], 5
mov dword [ebp - 0x18], edx
jmp 0x1003b2ce
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x100], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1003b2c1
mov dword [ebp - 0x18], edx
jmp 0x1003b2ec