Function at 0x45bfd0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c8
xor eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 4], 0x3274
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 8
push esi
mov dword [esp + 0x28], eax
push edi
mov dword [esp + 0x34], edx
mov dword [esp + 8], eax
jmp 0x45c01a
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x40], 0xf5fa3187
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x45c00a
push 1
pop edi
cmp dword [esp + 0xc], eax
jge 0x45c02e
mov ecx, eax
je 0x45c030
mov ecx, edi
mov dword [esp + 0x40], ecx
mov edx, eax
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0xc], eax
je 0x45c056
mov edx, edi
mov ecx, dword [esp + 0xc]
sub edx, ecx
jne 0x45c066
mov esi, eax
cmp dword [esp + 0x40], eax
je 0x45c068
mov esi, edi
mov ecx, dword [esp + 0x24]
xor edx, edx
cmp esi, ecx
push 4
setle dl
mov dword [esp + 0x20], edx
mov dword [esp + 0x20], eax
pop esi
jmp 0x45c2cf
mov dword [esp + 8], eax
jmp 0x45c09c
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x1cc], 0xffffffff
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x45c089
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x45c0c7
push eax
push 0x1dd6
push eax
push eax
push 0x2273
push 0xde5
call dword [sym.imp.USER32.dll_ToAsciiEx]
xor eax, eax
mov dword [esp + 0x24], 0x14
cmp dword [esp + 0x24], 0xf
je 0x45c2cb
mov dword [esp + 0x20], 0xccdf493a
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], edi
jg 0x45c1bf
push dword [esp + 0x48]
movdqa xmm0, xmmword [0xaa8f70]
lea ecx, [esp + 0x248]
push ecx
lea ecx, [esp + 0x23c]
mov dword [esp + 0xc8], eax
push ecx
push eax
lea ecx, [esp + 0xd0]
mov dword [esp + 0xd4], eax
movdqu xmmword [esp + 0x244], xmm0
mov dword [esp + 0xd8], eax
call fcn.0041458b
mov dword [esp + 8], 0
jmp 0x45c154
mov eax, dword [esp + 8]
mov dword [esp + eax*4 + 0xbc], 0xfffffffe
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45c141
mov eax, dword [esp + 0xc]
xor edx, edx
mov ecx, dword [esp + eax*4 + 0x40]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x40]
cmp ecx, eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc0]
setle dl
mov dword [esp + eax*4 + 0x40], edx
and dword [ecx + 4], 0
mov eax, dword [ecx + 4]
inc dword [ecx + 4]
mov dword [esp + eax*4 + 0x40], 0xd9248e6b
mov dword [esp + 0xbc], 0xd9248e6b
cmp dword [ecx + 4], edi
jle 0x45c184
lea ecx, [esp + 0xc0]
call fcn.00413e03
inc dword [esp + 0xc]
push 0
pop eax
cmp dword [esp + 0xc], edi
jle 0x45c0f0
mov dword [esp + 0xc], eax
jmp 0x45c2ae
mov dword [esp + 0x14], 7
mov dword [esp + 8], 0xbe8ca404
mov dword [esp + 0x14], eax
jmp 0x45c2a0
mov dword [esp + 8], 0xfffffffe
mov dword [esp + 0x28], 0xd027baed
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
jne 0x45c3a5
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + ecx*4 + 0x40]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x1d4]
mov ecx, dword [esp + 8]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, 3
jl 0x45c22b
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x40], edx
test edx, edx
je 0x45c246
mov ecx, edi
cmp dword [esp + 0x1d4], eax
jne 0x45c248
mov ecx, eax
mov dword [esp + 8], ecx
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x1c]
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
setg dl
cmp edx, dword [esp + 0x28]
jge 0x45c26f
mov ecx, eax
cmp dword [esp + 8], eax
je 0x45c271
mov ecx, edi
mov edx, dword [esp + 0x14]
imul edx, ecx
mov ecx, dword [esp + 0x1d0]
push 0
cmp edx, ecx
pop ecx
setge cl
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x2c], ecx
setle dl
mov dword [esp + 0x2c], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x45c1e1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x14
jge 0x45c1c8
dec dword [esp + 0x24]
cmp dword [esp + 0x24], 0xf
jne 0x45c0da
push 4
pop esi
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffe5
jge 0x45c083
mov ecx, dword [0x15be980]
test cl, 1
jne 0x45c364
push eax
or ecx, edi
mov dword [0x15be990], eax
push eax
mov dword [0x15be980], ecx
mov dword [0x15be994], eax
call fcn.0044ebe3
mov ecx, eax
mov dword [0x15be9ac], 0x3f800000
mov dword [0x15be990], ecx
xor eax, eax
mov dword [esp + 0x9c], ecx
lea ecx, [esp + 0x9c]
push ecx
push 0x10
push eax
mov dword [0x15be998], eax
mov ecx, 0x15be998
mov dword [0x15be9a0], eax
mov dword [0x15be99c], eax
lea eax, [esp + 0x218]
push eax
call fcn.0044e988
push 0x4b44f1
mov dword [0x15be9a4], 7
mov dword [0x15be9a8], 8
call fcn.0049857f
pop ecx
imul eax, dword [esp + 0x3c], 0x2710
lea ecx, [esp + 0x190]
push esi
add eax, dword [esp + 0x38]
mov dword [esp + 0x64], eax
call fcn.00413a85
mov dword [esp + 0x30], edi
xor eax, eax
mov dword [esp + 8], 0x8b922806
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 0x55f1
mov dword [esp + 8], eax
jmp 0x45c3c2
push 0x192d
call dword [sym.imp.KERNEL32.dll_ExitThread]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x190]
mov dword [ecx + edx*4], eax
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x45c3b0
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x28], eax
je 0x45c3f6
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x190]
mov eax, 0xa5e0b2f6
cmp eax, dword [ecx + 4]
sbb eax, eax
neg eax
mov dword [ecx + 4], eax
lea ecx, [esp + 0x190]
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 8]
sub eax, 0x967684ab
neg eax
sbb eax, eax
inc eax
mov dword [esp + 8], eax
call fcn.00413e03
lea eax, [esp + 0x60]
push eax
call fcn.0045de47
push esi
lea ecx, [esp + 0xe4]
mov eax, dword [eax]
mov dword [esp + 0x10], 0x2751
mov dword [esp + 0x2c], 0x26a056eb
mov dword [esp + 0x30], eax
call fcn.00413a85
mov dword [esp + 0x28], 0x69be541
lea ecx, [esp + 0x1b4]
push edi
call fcn.00413a85
xor eax, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], eax
jmp 0x45c48e
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xe0]
mov dword [ecx + edx*4], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x45c47c
mov dword [esp + 0x14], eax
jmp 0x45c4b0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1b4]
mov dword [ecx + edx*4], 6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x45c49a
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0xc], eax
jne 0x45c4da
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
shl ecx, 2
sub edx, ecx
sub edx, dword [esp + 0xc]
imul edx, dword [esp + 0xc]
test edx, edx
je 0x45c4dc
mov eax, edi
mov dword [esp + 0x28], eax
xor ecx, ecx
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0xe0]
mov dword [eax], edx
mov eax, dword [esp + 0xc]
cmp edx, eax
setne cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xe0]
cmp dword [eax], ecx
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0xc]
setg dl
add ecx, edx
xor edx, edx
mov esi, dword [eax]
mov eax, dword [esp + 0xc]
cmp ecx, eax
lea ecx, [esp + 0x1b4]
setle dl
xor eax, eax
cmp edx, esi
setl al
sub eax, esi
mov dword [esp + 0x20], eax
call fcn.00413e03
lea ecx, [esp + 0xe0]
call fcn.00413e03
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x45c643
mov dword [esp + 0x18], 0x2135
mov dword [esp + 0x18], 0xa2768935
mov dword [esp + 0x18], 0xfffffff9
mov dword [esp + 0x18], 8
mov dword [esp + 0x18], 0xe663439f
mov dword [esp + 0x18], 0x758c9e43
push 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0xc], 0
pop esi
jmp 0x45c5c1
mov eax, dword [esp + 8]
mov dword [esp + eax*4 + 0x29c], 0x5010f7a7
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x45c5ae
dec dword [esp + 0x28]
mov dword [esp + 0xb0], ecx
lea ecx, [esp + 0x16c]
mov dword [esp + 0x34], 0xffffffff
push esi
call fcn.00413a85
mov dword [esp + 8], 0
jmp 0x45c607
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x16c]
mov dword [eax + ecx*4], 0xecb45710
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x45c5f1
mov byte [esp + 0x13], 0
cmp byte [esp + 0x13], 0
je 0x45c624
push 0x25ca
call dword [sym.imp.USER32.dll_IsWindow]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x16c]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x16c]
call fcn.00413e03
jmp 0x45dd6a
mov dword [esp + 0x30], 0xffffffff
lea ecx, [esp + 0x210]
push 4
call fcn.00413a85
mov dword [esp + 0x18], 0xce028f4e
xor eax, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x1c], 0x6e56995e
mov dword [esp + 0xc], eax
jmp 0x45c693
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x210]
mov dword [ecx + edx*4], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x45c681
mov dword [esp + 0xc], eax
jmp 0x45c6af
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0xcc], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x45c6a0
mov dword [esp + 0xc], eax
jmp 0x45c6ce
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x204], 0xe6a916c6
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x45c6bb
mov dword [esp + 0x30], 0xffffffff
jmp 0x45c770
mov dword [esp + 0x18], 0x6bacd795
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x20], 0x63cc1dab
mov dword [esp + 0x20], 0xef31
mov dword [esp + 8], eax
jmp 0x45c723
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x2a4], 0x79cf1813
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x45c710
dec dword [esp + 0x28]
mov esi, 0xbcc7
mov ecx, dword [esp + 0x20]
sub esi, ecx
sub esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0xcc]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
mov ecx, dword [esp + 0x1c]
setl dl
mov dword [esp + 0x20], edx
xor edx, edx
cmp ecx, dword [esp + 0x20]
setl dl
sub edx, dword [esp + 0x204]
mov dword [esp + 0x20], edx
inc dword [esp + 0x30]
cmp dword [esp + 0x30], 0xd
jge 0x45c6e2
lea ecx, [esp + 0x210]
call fcn.00413e03
mov eax, dword [0x15be980]
test al, 2
jne 0x45c80e
or eax, 2
mov dword [0x15be980], eax
xor eax, eax
push eax
push eax
mov dword [0x15be960], eax
mov dword [0x15be964], eax
call fcn.0044ebe3
mov ecx, eax
mov dword [0x15be97c], 0x3f800000
mov dword [0x15be960], ecx
xor eax, eax
mov dword [esp + 0xac], ecx
lea ecx, [esp + 0xac]
push ecx
push 0x10
push eax
mov dword [0x15be968], eax
mov ecx, 0x15be968
mov dword [0x15be970], eax
mov dword [0x15be96c], eax
lea eax, [esp + 0x5c]
push eax
call fcn.0044e988
push 0x4b44ec
mov dword [0x15be974], 7
mov dword [0x15be978], 8
call fcn.0049857f
pop ecx
mov dword [esp + 0x1c], 0x5b9b55bb
lea ecx, [esp + 0x19c]
push 3
call fcn.00413a85
xor eax, eax
mov dword [esp + 8], eax
jmp 0x45c842
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x19c]
mov dword [ecx + edx*4], 0xe6f885ea
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x45c82c
mov dword [esp + 0x1c], 0x12
jmp 0x45c8c9
mov dword [esp + 0x30], 0x18795010
mov dword [esp + 0x20], 0x609b
cmp dword [esp + 0x1c], eax
je 0x45c891
mov dword [esp + 0x20], 0x1c3a
xor edx, edx
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
cmp ecx, 0xffffffff
setne dl
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x1c], eax
jne 0x45c8d0
jmp 0x45c8c5
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x19c]
mov dword [ecx], edx
mov dword [esp + 0x30], eax
jmp 0x45c8be
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x45c8ba
push eax
push eax
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringByteLen]
xor eax, eax
inc dword [esp + 0x30]
cmp dword [esp + 0x30], 2
jne 0x45c8a4
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff4
jle 0x45c853
lea ecx, [esp + 0x19c]
call fcn.00413e03
lea eax, [esp + 0x3c]
xorps xmm0, xmm0
push eax
movdqu xmmword [esp + 0x68], xmm0
call fcn.0045dea9
mov eax, dword [eax]
mov dword [esp + 0x20], 0xfffffff6
mov dword [esp + 0x18], 0xffff
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x2c], 0x6396
mov dword [esp + 0x18], 4
mov dword [esp + 8], eax
jmp 0x45c931
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x58], 0x21ac
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45c921
mov dword [esp + 0x1c], 0xf37fc033
mov dword [esp + 0x28], 0x2a93
mov dword [esp + 8], 0x3d8d5894
mov dword [esp + 8], eax
jmp 0x45c968
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x21c], 0x9d95921b
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x45c955
cmp dword [esp + 0x1c], eax
jne 0x45c981
mov ecx, dword [esp + 0x58]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x58]
sub edx, ecx
mov ecx, dword [esp + 0x28]
cmp edx, ecx
push 0
pop ecx
setle cl
xor edx, edx
mov dword [esp + 0x220], ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x20], ecx
setne dl
mov dword [esp + 8], edx
mov ecx, dword [esp + 8]
sub ecx, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x45c9d9
push eax
call dword [sym.imp.KERNEL32.dll_ClearCommBreak]
cmp byte [ebp + 0xc], 0
jne 0x45c9eb
mov esi, dword [esp + 0x30]
test esi, esi
jne 0x45cb9f
mov dword [esp + 0x28], 0xfffffff9
lea ecx, [esp + 0x184]
push edi
call fcn.00413a85
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x45ca1b
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x104], 0xe446df3
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x45ca08
mov dword [esp + 0x14], eax
jmp 0x45ca3b
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x184]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x45ca28
mov ecx, 0xde19d29b
mov dword [esp + 0x108], ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x184]
mov dword [ecx], edx
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x45ca75
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea ecx, [esp + 0x184]
call fcn.00413e03
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x2c0]
mov ecx, dword [esp + 0x3c]
push eax
call fcn.0044f480
mov esi, eax
lea edi, [esp + 0x68]
mov eax, 0x7f6af112
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
xor eax, eax
mov dword [esp + 0x88], eax
jmp 0x45cb02
mov dword [esp + 8], 0xd3f46721
mov dword [esp + 8], eax
jmp 0x45caf4
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x45caf0
push eax
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_RegConnectRegistryW]
xor eax, eax
dec dword [esp + 8]
cmp dword [esp + 8], 0xffffffef
jle 0x45cada
dec dword [esp + 0x88]
cmp dword [esp + 0x88], 0xfffffff5
jge 0x45cacc
cmp byte [ebp + 0xc], 0
je 0x45cb98
cmp dword [esp + 0x6c], 0
je 0x45cb98
push 4
pop esi
push esi
lea ecx, [esp + 0x14c]
call fcn.00413a85
xor eax, eax
mov dword [esp + 8], esi
mov dword [esp + 8], eax
jmp 0x45cb4c
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x148]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x45cb39
mov dword [esp + 8], 3
cmp dword [esp + 8], eax
jl 0x45cb76
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x148]
cmp dword [ecx + edx*4], eax
jne 0x45cb76
dec dword [esp + 8]
jns 0x45cb60
lea ecx, [esp + 0x148]
call fcn.00413e03
mov eax, dword [esp + 0x70]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xb8], eax
mov esi, dword [esp + 0x30]
xor edi, edi
inc edi
mov dword [esp + 0x24], 0x4e064826
lea ecx, [esp + 0x1e8]
push edi
call fcn.00413a85
xor eax, eax
mov dword [esp + 0x2c], 0x320ba2c
mov dword [esp + 8], eax
jmp 0x45cbd7
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x1e8]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45cbc4
mov dword [esp + 0x24], 0x11
cmp dword [esp + 0x24], 0x17
jne 0x45cdbc
jmp 0x45cbf4
xor eax, eax
push dword [esp + 0x50]
movdqa xmm0, xmmword [0xaa8f90]
lea ecx, [esp + 0x258]
push ecx
lea ecx, [esp + 0x24c]
mov dword [esp + 0x100], eax
push ecx
push eax
lea ecx, [esp + 0x108]
mov dword [esp + 0x10c], eax
movdqu xmmword [esp + 0x254], xmm0
mov dword [esp + 0x110], eax
call fcn.0041458b
mov dword [esp + 0xc], 0x6d4f2887
mov dword [esp + 0x18], 0xe662db8e
mov dword [esp + 0x28], 0x4415e40c
mov dword [esp + 0xc], 3
cmp dword [esp + 0xc], 0
jl 0x45cda1
mov dword [esp + 0x1c], 0x7e4fc22
lea ecx, [esp + 0x1dc]
mov dword [esp + 0x18], 0
mov dword [esp + 0x18], 0x25245f5b
mov dword [esp + 0x18], 0xffffffff
push 3
call fcn.00413a85
xor eax, eax
mov dword [esp + 0x18], 0x5015e0c0
mov dword [esp + 8], eax
jmp 0x45ccb7
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x1dc]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x45cca4
mov dword [esp + 0x1c], eax
jmp 0x45cd80
mov dword [esp + 8], 0xffffffff
mov dword [esp + 0x18], 9
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 8], eax
jmp 0x45cd00
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x2b4], eax
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x45ccf1
mov dword [esp + 8], 3
cmp dword [esp + 8], eax
jl 0x45cd7c
push 2
pop edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], 6
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], 0xfffffffc
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
jmp 0x45cd4d
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x28c], 0xfffffffe
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x45cd3a
mov dword [esp + 0x14], eax
jmp 0x45cd68
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x294], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x45cd59
inc dword [esp + 0x28]
mov ecx, dword [esp + 8]
dec dword [esp + 8]
jns 0x45cd18
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jle 0x45ccc7
lea ecx, [esp + 0x1dc]
call fcn.00413e03
dec dword [esp + 0xc]
jns 0x45cc66
lea ecx, [esp + 0xf8]
call fcn.00413e03
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0x17
je 0x45cbf2
inc dword [esp + 0x2c]
lea ecx, [esp + 0x1e8]
call fcn.00413e03
test esi, esi
jne 0x45d3f9
cmp dword [esp + 0x64], esi
jle 0x45d3f9
mov dword [esp + 0xc], 0xfd3df75d
mov dword [esp + 0x1c], 6
mov dword [esp + 0x18], 0xa5bed857
mov dword [esp + 0x20], 0xed66e5dc
mov dword [esp + 0x18], 0xfffffffc
mov dword [esp + 0x18], 0xd4bca925
mov dword [esp + 0x2c], 0xfffffffa
mov dword [esp + 0x28], 0x5008d6d
mov dword [esp + 8], esi
jmp 0x45ce34
mov eax, dword [esp + 8]
mov dword [esp + eax*4 + 0x4c], 0xffffffff
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45ce24
mov dword [esp + 0xc], 0
jmp 0x45cfb5
mov dword [esp + 0xc], edi
lea ecx, [esp + 0x110]
call fcn.00413a85
push dword [esp + 0x50]
lea ecx, [esp + 0x278]
xor eax, eax
push ecx
lea ecx, [esp + 0x26c]
mov dword [esp + 0x7c], eax
push ecx
xorps xmm0, xmm0
mov dword [esp + 0x84], eax
push eax
lea ecx, [esp + 0x84]
mov dword [esp + 0x8c], eax
movdqu xmmword [esp + 0x274], xmm0
call fcn.0041458b
mov dword [esp + 0x24], 5
lea ecx, [esp + 0x160]
mov dword [esp + 0x2c], 0
push edi
call fcn.00413a85
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x45cecf
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10c]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x45cebd
mov dword [esp + 0x14], eax
jmp 0x45cef1
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x160]
mov dword [ecx + edx*4], 0xa3ca5aad
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x45cedb
mov ecx, dword [esp + 8]
mov edx, 0x8c01
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
sub edx, ecx
mov ecx, dword [esp + 0x10c]
mov dword [ecx], edx
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x74]
mov dword [ecx], eax
cmp dword [esp + 0x2c], eax
je 0x45cf62
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x160]
cmp ecx, dword [eax]
jg 0x45cf52
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x74]
add ecx, 0x5b90c327
mov dword [eax], ecx
lea ecx, [esp + 0x160]
call fcn.00413e03
lea ecx, [esp + 0x74]
call fcn.00413e03
lea ecx, [esp + 0x10c]
call fcn.00413e03
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff8
push edi
jl 0x45ce47
lea ecx, [esp + 0x94]
call fcn.00413a85
mov dword [esp + 0x20], 0x2006887e
xor eax, eax
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 8], eax
jmp 0x45cffb
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x90]
mov dword [ecx + edx*4], 0xfffffffb
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45cfe5
mov esi, dword [esp + 0x90]
cmp dword [esi], eax
je 0x45d01b
cmp dword [esp + 0x20], eax
mov edx, edi
mov esi, dword [esp + 0x90]
jne 0x45d01d
mov edx, eax
mov ecx, dword [esi]
sub ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, dword [esi]
setl dl
xor ecx, ecx
cmp edx, dword [esi]
setge cl
mov dword [esp + 0x20], ecx
mov ecx, dword [esi]
test ecx, ecx
je 0x45d045
mov dword [esp + 0x18], ecx
jmp 0x45d06d
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x45d065
push eax
push 0x1da8
push eax
push 0xefe
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [esp + 0x18], 3
lea ecx, [esp + 0x90]
call fcn.00413e03
xor eax, eax
mov dword [esp + 8], 0xffffffff
mov dword [esp + 8], eax
jmp 0x45d099
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x48], 0xf89b
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45d089
mov dword [esp + 8], 0xfffffffe
jmp 0x45d140
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], eax
cmp dword [esp + 0xd8], eax
jl 0x45d119
mov dword [esp + 0x1c], 0x8afa2faf
mov dword [esp + 0x1c], eax
jmp 0x45d0f6
mov ecx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0x48], 0xfffffff7
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x45d0e6
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x45d110
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
xor eax, eax
dec dword [esp + 0xd8]
jns 0x45d0d8
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x45d13c
push 0x12a3
push 0x1eb1
push eax
push 0x806
call dword [sym.imp.USER32.dll_DrawFrameControl]
xor eax, eax
dec dword [esp + 8]
cmp dword [esp + 8], 0xffffffe2
jge 0x45d0ac
push 2
pop esi
push esi
lea ecx, [esp + 0x1ac]
call fcn.00413a85
push edi
lea ecx, [esp + 0x140]
call fcn.00413a85
mov dword [esp + 0x20], 0xd707d8eb
lea ecx, [esp + 0x178]
mov dword [esp + 0x20], 8
mov dword [esp + 8], edi
push 4
call fcn.00413a85
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x45d1a8
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1a8]
mov dword [ecx + edx*4], 9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x45d192
mov dword [esp + 0xc], eax
jmp 0x45d1ca
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x13c]
mov dword [ecx + edx*4], 0xdfe9f486
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x45d1b4
mov dword [esp + 0xc], eax
jmp 0x45d1e9
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x274], 0xb63e91c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x45d1d6
mov dword [esp + 0xc], eax
jmp 0x45d206
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x5c], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x45d1f6
mov dword [esp + 0xc], eax
jmp 0x45d225
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x178]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x45d212
mov ecx, dword [esp + 0x1a8]
xor edx, edx
mov dword [esp + 0x18], ecx
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x13c]
cmp dword [esi], eax
setl dl
mov dword [ecx + 4], edx
mov ecx, dword [esi]
add ecx, edx
mov edx, dword [esi]
imul edx, ecx
mov dword [esp + 0x274], ecx
xor ecx, ecx
sub edx, 0xfffd
cmp edx, dword [esi]
setg cl
xor edx, edx
cmp ecx, dword [esi]
setg dl
xor ecx, ecx
cmp edx, dword [esi]
mov edx, 0xcb2ec6f0
setg cl
sub ecx, dword [esi]
neg ecx
sbb ecx, ecx
inc ecx
cmp edx, ecx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, dword [esi]
mov dword [esp + 0x5c], edx
setg cl
cmp ecx, dword [esi]
jle 0x45d29c
cmp dword [esi], eax
je 0x45d29c
mov eax, edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x5c]
push 9
pop ecx
cmp ecx, eax
mov ecx, dword [esp + 0x18]
sbb eax, eax
neg eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 8]
mov eax, dword [esp + 8]
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x178]
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x178]
call fcn.00413e03
lea ecx, [esp + 0x13c]
call fcn.00413e03
lea ecx, [esp + 0x1a8]
call fcn.00413e03
cmp dword [esp + 0x68], 0
je 0x45d3f9
mov dword [esp + 0x14], 0x170cd509
mov dword [esp + 0x20], 0x350d8af
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], 0xfffffffd
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x14]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x14]
jg 0x45d33f
mov dword [esp + 0x24], 0xe8e56f9b
xor eax, eax
mov dword [esp + 8], 0xfa8f90a3
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0xfaa23240
mov dword [esp + 0x20], 0xfffffff8
mov dword [esp + 8], eax
jmp 0x45d435
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x38], 0xbdde0bcd
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45d425
mov dword [esp + 0x24], eax
jmp 0x45d62d
mov dword [esp + 0x1c], 0xb63e8e1b
mov dword [esp + 8], eax
jmp 0x45d462
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x54], 0xfffffffd
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45d452
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
neg ecx
cmp ecx, 0xce29
mov ecx, dword [esp + 0x38]
push 0
setge dl
cmp ecx, edx
mov ecx, dword [esp + 0x20]
pop edx
setne dl
add ecx, edx
jne 0x45d4ca
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
cmp ecx, edx
mov ecx, dword [esp + 8]
push 0
pop edx
setne dl
cmp edx, ecx
push 0
pop ecx
setge cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
cmp dword [esp + 0x18], ecx
setle dl
cmp edx, dword [esp + 0x14]
mov edx, eax
jge 0x45d4cc
mov edx, edi
mov ecx, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x38], edx
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x1c], eax
je 0x45d4fd
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x45d629
push 0x491
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x45d627
push 2
lea ecx, [esp + 0x134]
call fcn.00413a85
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x45d522
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x254], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x45d513
mov dword [esp + 0xc], eax
jmp 0x45d542
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x1c0], 0x8fa48a2b
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x45d52f
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 2
jge 0x45d574
push dword [esp + 0xc]
lea ecx, [esp + 0x134]
call fcn.00413b23
or dword [eax], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x45d554
xor eax, eax
inc dword [esp + 0x20]
jne 0x45d5fe
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
sub edx, 0xbbb531ea
neg edx
sbb edx, edx
inc edx
imul ecx, edx
cmp ecx, dword [esp + 8]
jg 0x45d5a4
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x14], eax
jne 0x45d5a8
mov dword [esp + 0x2c], eax
push edi
lea ecx, [esp + 0x134]
call fcn.00413b23
mov ecx, dword [esp + 0x1c]
xor edx, edx
cmp dword [esp + 0x2c], ecx
mov esi, eax
mov eax, 0x883faa05
setne dl
sub edx, dword [esp + 0x254]
neg edx
sbb edx, edx
inc edx
cmp eax, edx
sbb eax, eax
inc eax
cmp eax, dword [esi]
jle 0x45d5e6
mov eax, dword [esp + 0x24]
mov eax, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x1c4]
mov eax, dword [esp + 0x1c4]
cmp dword [esp + 0x38], eax
jne 0x45d5fe
xor edx, edx
jmp 0x45d600
mov edx, edi
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x254]
setge cl
add eax, ecx
lea ecx, [esp + 0x130]
mov dword [esp + 0x1c4], eax
call fcn.00413b1e
xor eax, eax
inc dword [esp + 0x24]
cmp dword [esp + 0x24], eax
jle 0x45d444
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x45d652
push 0x342
push 0x10fa
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
lea ecx, [esp + 0x64]
call fcn.00457e8a
push edi
lea ecx, [esp + 0xa4]
call fcn.00413a85
mov dword [esp + 0x14], 0x8530de9b
lea ecx, [esp + 0x1f8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x2c], 0xfffffffd
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0xf36a5b5c
mov dword [esp + 8], edi
mov dword [esp + 0x18], 0xebda3fa0
mov dword [esp + 0x18], 0xe5f1497e
push 2
call fcn.00413a85
mov dword [esp + 0x18], 0x67f41b6a
mov dword [esp + 0x14], 0
jmp 0x45d6e6
push dword [esp + 0x14]
lea ecx, [esp + 0xa4]
call fcn.00413b23
mov dword [eax], 0xe41b66ba
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x45d6cc
mov dword [esp + 0x14], 0
jmp 0x45d710
push dword [esp + 0x14]
lea ecx, [esp + 0x1fc]
call fcn.00413b23
mov dword [eax], 0xfffffffc
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x45d6f6
mov dword [esp + 0x1c], 0x1b17
lea ecx, [esp + 0xa0]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
inc dword [esp + 0xc]
push 0
call fcn.00413b23
mov esi, eax
xor edx, edx
mov ecx, dword [esi]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [esi]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
setne dl
xor eax, eax
cmp edx, dword [esi]
setl al
mov dword [esp + 8], eax
mov dword [esp + 8], 0
cmp dword [esp + 8], 0
jl 0x45d97e
mov dword [esp + 0x20], 0x3238
lea ecx, [esp + 0xec]
push 3
call fcn.00413a85
mov dword [esp + 0x1c], 0
jmp 0x45d7c2
push dword [esp + 0x1c]
lea ecx, [esp + 0xf0]
call fcn.00413b23
mov dword [eax], 0xd9978317
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x45d7a8
mov dword [esp + 0xc], 0
cmp dword [esp + 0xc], 0
jg 0x45d86f
push 2
lea ecx, [esp + 0xf0]
call fcn.00413b23
push edi
lea ecx, [esp + 0xf0]
mov dword [esp + 0x1c], eax
call fcn.00413b23
mov edi, dword [esp + 0x18]
mov esi, eax
mov dword [esp + 0x18], 0xfffffffa
mov dword [esp + 0x2c], 8
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xa0]
push dword [esp + 0xc]
call fcn.00413b23
mov ecx, dword [esp + 0x20]
add ecx, dword [eax]
sub ecx, dword [esi]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp eax, 0x36042c8c
setl cl
neg ecx
add ecx, ecx
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov eax, dword [esp + 0x2c]
cmp eax, dword [edi]
setl cl
mov dword [esi], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0
jle 0x45d801
xor edi, edi
inc edi
mov dword [esp + 0x24], 0
cmp dword [esp + 0x24], 0
jg 0x45d968
or esi, 0xffffffff
movdqa xmm0, xmmword [0xaa8fb0]
lea eax, [esp + 0x234]
push eax
lea eax, [esp + 0x228]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x1c], 0x651ef224
lea ecx, [esp + 0x2b0]
mov dword [esp + 0x1c], 0xfffffffb
push eax
movdqu xmmword [esp + 0x22c], xmm0
call fcn.00413b35
push ecx
lea ecx, [esp + 0x284]
push dword [eax + 4]
push dword [eax]
call fcn.00413af8
xor eax, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], eax
jmp 0x45d947
mov dword [esp + 0x18], 0x8fefd6e5
mov dword [esp + 0x18], 0x64457c1b
mov dword [esp + 0x18], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
jmp 0x45d911
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x1f4], esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x45d902
mov dword [esp + 0x14], eax
jmp 0x45d939
push dword [esp + 8]
lea ecx, [esp + 0xa4]
call fcn.00413b23
mov ecx, eax
xor eax, eax
cmp dword [ecx], eax
jne 0x45d93f
inc dword [esp + 0x14]
cmp dword [esp + 0x14], eax
jle 0x45d91d
inc dword [esp + 0x20]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], eax
jle 0x45d8e4
lea ecx, [esp + 0x280]
call fcn.00413b1e
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0
jle 0x45d885
lea ecx, [esp + 0xec]
call fcn.00413b1e
dec dword [esp + 8]
jns 0x45d788
lea ecx, [esp + 0x1f8]
call fcn.00413b1e
lea ecx, [esp + 0xa0]
call fcn.00413b1e
cmp dword [esp + 0x30], 0
je 0x45dc2a
mov dword [esp + 0xc], 0xb90da115
xor eax, eax
mov dword [esp + 8], 0x7222631
mov dword [esp + 0x1c], 0x37d02268
cmp dword [esp + 0xc], eax
je 0x45da5e
push 2
pop esi
push esi
lea ecx, [esp + 0x11c]
call fcn.00413a85
mov dword [esp + 8], 0
jmp 0x45d9ee
push dword [esp + 8]
call fcn.00413b23
mov dword [eax], esi
inc dword [esp + 8]
lea ecx, [esp + 0x118]
cmp dword [esp + 8], esi
jl 0x45d9df
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
push edi
call fcn.00413b23
mov esi, dword [esp + 0x1c]
mov edi, eax
mov ecx, dword [esp + 0x1c]
sub esi, 0x77dcda72
neg esi
mov eax, dword [edi]
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
mov ecx, dword [esp + 8]
setl dl
add ecx, dword [esp + 0xc]
sub eax, edx
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [edi], ecx
lea ecx, [esp + 0x118]
call fcn.00413b1e
xor edi, edi
inc edi
jmp 0x45db62
mov dword [esp + 0x14], 0x35a7ab5b
mov dword [esp + 0x28], 0x96f77d90
mov dword [esp + 0x18], 0x12cd0ab8
mov dword [esp + 0x24], 0x42ef3998
mov dword [esp + 0x18], 0xd03168f1
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x45daa4
push 0x4ce
push eax
push eax
push 0x1d8e
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x14], ecx
jg 0x45dab6
mov ecx, eax
cmp dword [esp + 0x14], eax
je 0x45dab8
mov ecx, edi
xor edx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xc]
cmp ecx, edi
setge dl
cmp edx, 0xd02c
jle 0x45dafd
mov dword [esp + 0x18], 0x7276463a
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x45daf3
push 0x2528
push 0x2126
push eax
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
jmp 0x45db62
mov dword [esp + 8], edi
xor edx, edx
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 8]
mov eax, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
cmp ecx, eax
mov eax, dword [esp + 0xc]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x28]
setle cl
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
call fcn.0045bfc6
mov dword [esp + 0x34], 0x9cfe0482
mov esi, eax
mov dword [esp + 0x18], 0xbc66
mov dword [esp + 0x20], 0xdedb5cab
cmp dword [esp + 0x18], 0xffff
mov ecx, dword [esp + 0x34]
sbb edx, edx
mov dword [esp + 0xb0], esi
xor eax, eax
inc edx
cmp ecx, 0xffffffff
setge al
sub eax, edx
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
mov byte [esp + 0x13], 0
jns 0x45dbd2
cmp byte [esp + 0x13], 0
je 0x45dbf9
push 0xd7
push 0x1913
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
jmp 0x45dbf9
cmp byte [esp + 0x13], 0
je 0x45dbf9
push 0
push 0x1e61
push 0x1a10
push 0
push 0xff8
push 0x1346
push 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov byte [esp + 0x13], 0
cmp byte [esp + 0x13], 0
je 0x45dc1e
push 0
push 0x1882
push 0
push 0x1b2f
push 0xad4
call dword [sym.imp.GDI32.dll_ExtCreatePen]
lea eax, [esp + 0x60]
push eax
call fcn.0045de47
mov dword [eax], esi
push 4
pop esi
mov dword [esp + 0xc], 0x2751
lea ecx, [esp + 0x154]
mov dword [esp + 0x34], 0x26a056eb
push esi
call fcn.00413a85
mov dword [esp + 0x34], 0x69be541
lea ecx, [esp + 0x124]
push edi
call fcn.00413a85
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
jmp 0x45dc83
push dword [esp + 0x14]
lea ecx, [esp + 0x158]
call fcn.00413b23
mov dword [eax], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x45dc6d
mov dword [esp + 0x14], 0
jmp 0x45dcad
push dword [esp + 0x14]
lea ecx, [esp + 0x128]
call fcn.00413b23
mov dword [eax], 6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x45dc93
mov eax, dword [esp + 0xc]
cmp dword [esp + 0xc], 0
jne 0x45dcda
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
shl eax, 2
sub ecx, eax
sub ecx, dword [esp + 0xc]
imul ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x45dcda
xor edi, edi
mov dword [esp + 0x34], edi
lea ecx, [esp + 0x154]
mov esi, dword [esp + 0x34]
push 0
call fcn.00413b23
mov ecx, dword [esp + 0xc]
mov edi, eax
xor edx, edx
cmp esi, ecx
push 0
setne dl
mov dword [edi], esi
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp dword [edi], eax
setg cl
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x128]
call fcn.00413b23
mov ecx, dword [esp + 0xc]
xor edx, edx
add ecx, dword [esp + 0x18]
mov esi, dword [eax]
mov eax, dword [esp + 0xc]
cmp ecx, eax
lea ecx, [esp + 0x124]
setle dl
xor eax, eax
cmp edx, esi
setl al
sub eax, esi
mov dword [esp + 0x18], eax
call fcn.00413b1e
lea ecx, [esp + 0x154]
call fcn.00413b1e
mov eax, dword [ebp + 8]
lea esi, [esp + 0xb0]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret