Function at 0x456d00
Capabilities:
Check for time delay via queryperformancecounter
Create thread

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49e921
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x398
mov eax, dword [0x4d7200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x33c], esi
mov eax, dword [esi + 0xbc]
lea ecx, [esi + 0x2e8]
cmp eax, 0xffffffff
jne 0x456d5c
mov eax, dword [ecx]
mov edx, dword [esi + 0x2e4]
test edx, edx
je 0x45c099
cmp eax, 1
jl 0x45c099
cmp eax, dword [ecx]
jg 0x45c099
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x45c099
cmp dword [edx + eax*8], 0xf
jne 0x45c099
push 2
push 0xffffffffffffffff
push 0x100c
push dword [edx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x3a4], eax
test eax, eax
js 0x45c099
push ecx
push dword [esi + 0xd8]
lea ecx, [esi + 0x2a8]
call fcn.00416520
mov edi, eax
lea ecx, [esi + 0x2a8]
mov dword [ebp - 0x380], edi
test edi, edi
jns 0x456df0
push ecx
push 0x1c2
push 0x96
push ecx
push 0
push 0x4c85e0
jmp 0x45c0b2
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 1
mov dword [ebp - 4], 0
movq qword [ebp - 0x34], xmm0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 1
push 3
push edi
mov byte [ebp - 4], 1
push dword [esi + 0xd8]
call fcn.00416470
mov dword [ebp - 0x31c], eax
test eax, eax
mov eax, dword [ebp - 0x28]
jne 0x456ea0
test eax, eax
je 0x456e62
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x456e98
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x456e85
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x456ebd
test eax, eax
je 0x456ead
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x31c]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0
push 4
push edi
mov byte [ebp - 0x20], 1
lea ecx, [esi + 0x2a8]
push dword [esi + 0xd8]
call fcn.00416470
mov dword [ebp - 0x338], eax
test eax, eax
jne 0x456f36
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x456eef
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov dword [ebp - 0x34], edx
test eax, eax
jle 0x456f25
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
cmp ecx, eax
jl 0x456f12
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x338], eax
jmp 0x456f56
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x456f4c
push ecx
call fcn.00489c73
mov eax, dword [ebp - 0x338]
add esp, 4
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 0
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 0x2c], 1
mov dword [ebp - 0x350], ecx
cmp ecx, 0x4bfc90
je 0x456f90
test ecx, ecx
je 0x4570bd
mov edi, 0x4bfc90
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x456ff5
cmp word [edi], ax
jne 0x456ffa
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x338], eax
cmp eax, 0x4c21c0
je 0x456fbb
test eax, eax
je 0x4570bd
mov edi, 0x4c21c0
movzx eax, word [eax]
mov ecx, eax
test ax, ax
jne 0x45705b
cmp word [edi], ax
jne 0x457060
push 1
push dword [ebp - 0x380]
lea ecx, [esi + 0x2a8]
push dword [esi + 0xd8]
call fcn.00416470
mov dword [ebp - 0x31c], eax
lea edi, [esi + 0x1e4]
test eax, eax
jne 0x4570e5
push eax
mov ecx, edi
call fcn.00401860
jmp 0x457107
cmp ax, word [edi]
je 0x45704a
xor ecx, ecx
cmp cx, ax
jne 0x457009
mov dword [ebp - 0x324], ecx
jmp 0x45701b
push edx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x324], eax
movzx eax, word [edi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x45702b
xor eax, eax
jmp 0x457037
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x324], ax
jne 0x4570bd
mov ecx, dword [ebp - 0x350]
add ecx, 2
add edi, 2
mov dword [ebp - 0x350], ecx
jmp 0x456f78
cmp ax, word [edi]
je 0x4570a6
xor edx, edx
cmp dx, ax
jne 0x45706f
mov dword [ebp - 0x324], edx
jmp 0x457081
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x324], eax
movzx eax, word [edi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x457091
xor eax, eax
jmp 0x45709d
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x324], ax
jne 0x4570bd
mov eax, dword [ebp - 0x338]
add eax, 2
add edi, 2
mov dword [ebp - 0x338], eax
jmp 0x456fa4
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
mov ecx, esi
push eax
push 0
push 0x4c85e0
call fcn.00432b40
or edi, 0xffffffff
jmp 0x45c06a
mov eax, dword [edi]
test eax, eax
je 0x4570f4
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x31c]
mov dword [edi], eax
mov dword [edi + 4], 0
mov byte [edi + 8], 1
mov ecx, edi
call fcn.00401fd0
mov ecx, eax
mov eax, edx
mov dword [ebp - 0x368], ecx
mov dword [ebp - 0x378], eax
test ecx, ecx
jne 0x457136
test eax, eax
jne 0x457136
mov dword [ebp - 0x368], 1
mov dword [ebp - 0x378], edx
push 2
push dword [ebp - 0x380]
lea ecx, [esi + 0x2a8]
push dword [esi + 0xd8]
call fcn.00416470
mov dword [ebp - 0x31c], eax
test eax, eax
jne 0x457163
push eax
mov ecx, edi
call fcn.00401860
jmp 0x457185
mov eax, dword [edi]
test eax, eax
je 0x457172
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x31c]
mov dword [edi], eax
mov dword [edi + 4], 0
mov byte [edi + 8], 1
lea ecx, [esi + 0x1e4]
call fcn.00401fd0
mov edi, eax
mov dword [ebp - 0x364], eax
mov ecx, edx
add edi, 0xfff00000
mov dword [ebp - 0x34c], ecx
mov eax, edi
adc ecx, 0xffffffff
mov dword [ebp - 0x37c], edi
mov edx, 0xe147ae15
mov dword [ebp - 0x370], ecx
mul edx
mov eax, edi
mov esi, edx
mov edx, 0x47ae147a
mul edx
push 5
mov edi, eax
mov dword [ebp - 0x2c4], edx
mov eax, ecx
mov ecx, 0xe147ae15
mul ecx
push dword [ebp - 0x3a4]
mov ecx, eax
mov dword [ebp - 0x31c], edx
mov eax, dword [ebp - 0x370]
mov edx, 0x47ae147a
mul edx
add ecx, esi
mov esi, dword [ebp - 0x37c]
mov dword [ebp - 0x350], edx
mov edx, dword [ebp - 0x31c]
adc edx, 0
mov dword [ebp - 0x324], eax
add edi, ecx
mov ecx, dword [ebp - 0x2c4]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [ebp - 0x324]
adc eax, eax
add ecx, edx
mov edx, dword [ebp - 0x350]
adc edx, eax
mov eax, dword [ebp - 0x370]
sub esi, ecx
sbb eax, edx
shrd esi, eax, 1
shr eax, 1
add esi, ecx
adc eax, edx
shrd esi, eax, 6
mov dword [ebp - 0x37c], esi
mov esi, dword [ebp - 0x33c]
shr eax, 6
mov dword [ebp - 0x370], eax
push dword [esi + 0xbc]
lea ecx, [esi + 0x2a8]
call fcn.00416470
mov edi, eax
mov eax, dword [ebp - 0x28]
test edi, edi
jne 0x4572d1
test eax, eax
je 0x457289
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4572c3
nop dword [eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x4572b0
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
jmp 0x4572e6
test eax, eax
je 0x4572de
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
test edi, edi
je 0x45731b
test eax, eax
jne 0x457304
cmp word [edi], ax
je 0x4572ff
inc eax
cmp word [edi + eax*2], 0
jne 0x4572f7
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x45731b
push edi
mov byte [ebp - 0x20], 1
call fcn.0048ddfc
add esp, 4
mov dword [ebp - 0x328], eax
jmp 0x457329
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x328], 0
mov eax, dword [ebp - 0x37c]
lea edx, [esi + 0x2a8]
or eax, dword [ebp - 0x370]
jne 0x45735e
push ecx
push 0x1c2
push 0x96
push edx
push eax
push 0x4c86a0
mov ecx, esi
call fcn.00432b40
or edi, 0xffffffff
jmp 0x45c06a
xorps xmm0, xmm0
movups xmmword [ebp - 0x58], xmm0
movups xmmword [ebp - 0x48], xmm0
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x44]
mov dword [ebp - 0x58], 0
push ecx
push 0
mov byte [ebp - 4], 2
movaps xmm0, xmmword [0x4cd010]
push eax
push ecx
push edx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x40], 0xd
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x3c], 0
call fcn.00417480
push dword [esi + 0x4d8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4573b9
mov edi, dword [esi + 0x4d8]
jmp 0x4573bb
xor edi, edi
push 0x268
lea eax, [ebp - 0x2c0]
push 0
push eax
call fcn.0048b770
add esp, 0xc
mov word [ebp - 0x288], 0
mov dword [ebp - 0x1ac], 0
mov dword [ebp - 0x1b0], 0
mov byte [ebp - 0x1a8], 1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c0]
push 1
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.00417000
push ecx
push edi
push 0xffffffffffffffff
push SysReAllocString
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x145
push 0x23a
add esi, 0x22c
lea eax, [ebp - 0x2c0]
push 0x4c8724
cmovne eax, esi
lea ecx, [ebp - 0x2c0]
push 0x4c3cf8
mov dword [ebp - 0x100], eax
call fcn.0040bf80
push ecx
push 0xc
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff000000
push 0x145
push 0x23a
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 5
call fcn.004167f0
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x31c], eax
test edi, edi
je 0x4574f4
mov esi, dword [ebp - 0x33c]
xor edi, edi
lea eax, [esi + 0x2f8]
mov dword [ebp - 0x324], eax
nop
mov eax, dword [eax]
test eax, eax
je 0x4574d8
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4574d8
mov eax, dword [ebp - 0x324]
inc edi
add eax, 4
mov dword [ebp - 0x324], eax
cmp edi, 0x30
jl 0x4574b0
jmp 0x4574f4
mov eax, dword [ebp - 0x31c]
mov dword [esi + edi*4 + 0x2f8], eax
inc edi
cmp edi, dword [esi + 0x2f4]
jle 0x4574f4
mov dword [esi + 0x2f4], edi
movsd xmm0, qword [0x4cc780]
xor eax, eax
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0xffffff
movsd qword [ebp - 0x150], xmm0
mov dword [ebp - 0x148], 0x2bc
mov byte [ebp - 0x144], 1
mov byte [ebp - 0x102], 0
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x457532
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x142]
push 0x20
push eax
call fcn.0048cf13
add esp, 0x10
mov dword [ebp - 0xd0], 0x1400
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
mov edi, dword [sym.imp.USER32.dll_CreateWindowExW]
test al, al
je 0x4575db
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x1c
push 0x230
push 5
and eax, 1
push 5
shl eax, 0x11
add eax, 0x50000300
push eax
push 0x4c874c
push 0x4c018c
push 0
call edi
test eax, eax
je 0x4575db
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cce60]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
movsd xmm0, qword [0x4cc770]
xor eax, eax
movsd qword [ebp - 0x150], xmm0
mov dword [ebp - 0x148], 0x190
mov byte [ebp - 0x144], 1
mov byte [ebp - 0x102], 0
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x457610
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x142]
push 0x20
push eax
call fcn.0048cf13
add esp, 0x10
mov dword [ebp - 0xd0], 0x400
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4576b0
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x12
push 0x64
push 0x37
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c0d7c
push 0x4c018c
push 0
call edi
test eax, eax
je 0x4576b0
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cc9f0]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x19
push 0x104
push 0x32
and eax, 1
push 0x82
shl eax, 0x11
add eax, 0x50011000
push eax
push 0
push 0x4c0258
push 0
call edi
test eax, eax
jne 0x4576fb
mov dword [ebp - 0x36c], eax
jmp 0x457732
push eax
push 0x17
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4cce00]
mov dword [ebp - 0x36c], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
mov eax, dword [ebp - 0x284]
mov dword [eax + edx*8 + 0x44], 0
mov eax, dword [ebp - 0x280]
push 0x640000
push 1
push 0x406
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
push dword [eax + ecx*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x368]
mov eax, dword [ebp - 0x378]
shrd ecx, eax, 0x14
shr eax, 0x14
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00401cb0
mov ecx, eax
mov dword [ebp - 0x31c], ecx
cmp dword [ecx], 0
jne 0x45779b
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x31c]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
mov byte [ecx + 8], 1
mov eax, dword [ecx]
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x31c], eax
call fcn.00416d40
mov edx, 0x50022080
test al, al
jne 0x4577ca
mov dword [ebp - 0x374], 0
jmp 0x457845
test byte [ebp - 0x78], 1
mov ecx, 0x50002080
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
cmovne ecx, edx
inc eax
push eax
push dword [ebp - 0x8c]
or ecx, 0x10000
push 0x19
push 0x50
push 0x33
push 0x190
push ecx
push dword [ebp - 0x31c]
push 0x4c0220
push 0x200
call edi
test eax, eax
jne 0x45781c
mov dword [ebp - 0x374], eax
jmp 0x457845
push eax
push 0xc
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccd70]
mov dword [ebp - 0x374], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
mov edi, dword [ebp - 0x364]
sub esp, 8
mov eax, dword [ebp - 0x34c]
mov ecx, edi
add ecx, dword [ebp - 0x368]
adc eax, dword [ebp - 0x378]
shrd ecx, eax, 0x14
mov eax, dword [ebp - 0x378]
push ecx
mov ecx, dword [ebp - 0x368]
shrd ecx, eax, 0x14
push ecx
push dword [ebp - 0x374]
lea ecx, [ebp - 0x2c0]
call fcn.00412800
push ecx
push dword [ebp - 0x34c]
lea ecx, [ebp - 0x2c0]
push edi
push 0
push 0
push dword [ebp - 0x36c]
call fcn.00415380
sub esp, 8
lea ecx, [ebp - 0x28]
push dword [ebp - 0x378]
push dword [ebp - 0x368]
call fcn.00402130
mov dword [ebp - 0x354], eax
mov byte [eax + 8], 0
mov edi, dword [eax + 4]
test edi, edi
jne 0x4578eb
mov ecx, dword [eax]
test ecx, ecx
je 0x4578e8
cmp word [ecx], di
je 0x4578e8
nop dword [eax]
inc edi
cmp word [ecx + edi*2], 0
jne 0x4578e0
mov dword [eax + 4], edi
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x4578f0
add edi, eax
xor ecx, ecx
mov edx, 2
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [ebp - 0x354]
mov edx, eax
add esp, 4
mov dword [ebp - 0x324], edx
mov eax, dword [ecx]
mov dword [ebp - 0x31c], eax
test eax, eax
je 0x457951
movzx ecx, word [eax]
test cx, cx
je 0x457951
mov esi, eax
sub esi, edx
mov word [edx], cx
add edx, 2
movzx eax, word [esi + edx]
mov ecx, eax
test ax, ax
jne 0x457940
mov ecx, 0x4bffa0
mov esi, 0x20
sub ecx, edx
nop dword [eax]
mov word [edx], si
lea edx, [edx + 2]
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x457960
mov ecx, dword [ebp - 0x354]
xor eax, eax
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x457991
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x354]
add esp, 4
mov eax, dword [ebp - 0x324]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov byte [ecx + 8], 1
test eax, eax
jne 0x4579be
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x354]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
mov byte [ecx + 8], 1
mov edi, dword [ecx]
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
jne 0x4579e5
mov edi, dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [ebp - 0x394], 0
jmp 0x457a5b
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x19
push 0x4b
push 0x33
and eax, 1
push 0x1e5
shl eax, 0x11
add eax, 0x50800302
push eax
push edi
mov edi, dword [sym.imp.USER32.dll_CreateWindowExW]
push 0x4c018c
push 0
call edi
test eax, eax
jne 0x457a32
mov dword [ebp - 0x394], eax
jmp 0x457a5b
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccd50]
mov dword [ebp - 0x394], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x457acd
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x12
push 0x64
push 0x5f
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c8778
push 0x4c018c
push 0
call edi
test eax, eax
je 0x457acd
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cca00]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x19
push 0x104
push 0x5a
and eax, 1
push 0x82
shl eax, 0x11
add eax, 0x50011000
push eax
push 0
push 0x4c0258
push 0
call edi
test eax, eax
jne 0x457b85
xor edi, edi
mov dword [ebp - 0x324], eax
mov dword [ebp - 0x338], edi
xor edx, edx
mov ecx, dword [ebp - 0x284]
test ecx, ecx
je 0x457c17
cmp edi, 1
jl 0x457be6
cmp edi, dword [ebp - 0x280]
jg 0x457be6
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x457be6
mov eax, dword [ebp - 0x324]
push 0x640000
push 1
push 0x406
lea eax, [eax + eax*8]
push dword [ecx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x284]
mov edx, edi
cmp edi, 0xffffffff
jne 0x457be6
mov edx, dword [ebp - 0x280]
jmp 0x457c01
push eax
push 0x17
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
mov edi, eax
movaps xmm0, xmmword [0x4cce10]
mov dword [ebp - 0x338], edi
mov dword [ebp - 0x324], edi
lea edx, [edi + edi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
mov eax, dword [ebp - 0x284]
mov dword [eax + edx*8 + 0x44], 0
mov edx, edi
cmp edi, 0xffffffff
jne 0x457b20
mov eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov dword [ebp - 0x338], edi
jmp 0x457b57
test ecx, ecx
je 0x457c17
cmp edi, 1
jl 0x457c17
cmp edi, dword [ebp - 0x280]
jg 0x457c17
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x457c17
push 0x64
push 1
push 0x405
lea eax, [edx + edx*8]
push dword [ecx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x364]
mov eax, dword [ebp - 0x34c]
shrd ecx, eax, 0x14
shr eax, 0x14
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00401cb0
mov ecx, eax
mov dword [ebp - 0x31c], ecx
cmp dword [ecx], 0
jne 0x457c5b
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x31c]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
mov byte [ecx + 8], 1
mov eax, dword [ecx]
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x31c], eax
call fcn.00416d40
test al, al
jne 0x457c85
mov dword [ebp - 0x340], 0
jmp 0x457d15
test byte [ebp - 0x78], 1
mov eax, 0x50022080
push 0
push dword [ebp - 0x1a4]
mov ecx, 0x50002080
mov dword [ebp - 0x338], edi
cmovne ecx, eax
mov eax, dword [ebp - 0x280]
inc eax
or ecx, 0x10000
push eax
push dword [ebp - 0x8c]
push 0x19
push 0x50
push 0x5b
push 0x190
push ecx
push dword [ebp - 0x31c]
push 0x4c0220
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
jne 0x457ce6
mov dword [ebp - 0x340], eax
jmp 0x457d15
push eax
push 0xc
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccd90]
mov dword [ebp - 0x340], eax
lea edx, [eax + eax*8]
mov dword [ebp - 0x338], edi
movups xmmword [ecx + edx*8 + 0x24], xmm0
mov ecx, dword [ebp - 0x364]
sub esp, 8
mov eax, dword [ebp - 0x34c]
shrd ecx, eax, 0x14
push ecx
push 0
push dword [ebp - 0x340]
lea ecx, [ebp - 0x2c0]
call fcn.00412800
sub esp, 8
lea ecx, [ebp - 0x28]
push dword [ebp - 0x34c]
push dword [ebp - 0x364]
call fcn.00402130
mov ecx, eax
mov dword [ebp - 0x330], ecx
mov byte [ecx + 8], 0
mov eax, dword [ecx + 4]
test eax, eax
jne 0x457d7c
mov edx, dword [ecx]
test edx, edx
je 0x457d79
cmp word [edx], ax
je 0x457d79
inc eax
cmp word [edx + eax*2], 0
jne 0x457d71
mov dword [ecx + 4], eax
xor ecx, ecx
nop
inc ecx
cmp word [ecx*2 + 0x4bffa0], 0
jne 0x457d80
add eax, ecx
mov edx, 2
mov dword [ebp - 0x350], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [ebp - 0x330]
mov edx, eax
add esp, 4
mov dword [ebp - 0x324], edx
mov dword [ebp - 0x320], edi
mov eax, dword [ecx]
mov dword [ebp - 0x31c], eax
test eax, eax
je 0x457e27
movzx ecx, word [eax]
mov eax, ecx
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x338]
mov dword [ebp - 0x320], eax
test cx, cx
je 0x457e21
mov esi, dword [ebp - 0x2c4]
mov ecx, dword [ebp - 0x31c]
movzx edi, si
sub ecx, edx
mov dword [ebp - 0x31c], edi
mov esi, edi
mov dword [ebp - 0x320], eax
nop dword [eax]
mov word [edx], si
add edx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x457e10
mov ecx, dword [ebp - 0x330]
mov edi, 0x4bffa0
mov esi, 0x20
sub edi, edx
mov word [edx], si
lea edx, [edx + 2]
movzx eax, word [edx + edi]
mov esi, eax
test ax, ax
jne 0x457e33
mov edi, dword [ebp - 0x320]
xor eax, eax
mov esi, dword [ebp - 0x33c]
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x457e6a
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x330]
add esp, 4
mov edx, dword [ebp - 0x324]
mov eax, dword [ebp - 0x350]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov byte [ecx + 8], 1
test edx, edx
jne 0x457e9d
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x330]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
mov byte [ecx + 8], 1
mov eax, dword [ecx]
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x31c], eax
call fcn.00416d40
test al, al
jne 0x457ec4
mov dword [ebp - 0x338], 0
jmp 0x457f3d
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x19
push 0x4b
push 0x5b
and eax, 1
push 0x1e5
shl eax, 0x11
add eax, 0x50800302
push eax
push dword [ebp - 0x31c]
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
jne 0x457f14
mov dword [ebp - 0x338], eax
jmp 0x457f3d
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccd60]
mov dword [ebp - 0x338], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x457fb6
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x12
push 0x64
push 0x87
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c8790
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x457fb6
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cca20]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
cmp dword [ebp - 0x328], 1
mov eax, dword [ebp - 0x28]
jne 0x45803d
test eax, eax
je 0x457fcf
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c87b0], 0
jne 0x457fe0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4580b7
mov dword [ebp - 0x320], edi
mov ax, word [ecx*2 + 0x4c87b0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x458021
jmp 0x4580b7
test eax, eax
je 0x45804a
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
mov dword [ebp - 0x324], edi
cmp word [eax*2 + 0x4c8808], 0
jne 0x458050
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
mov dword [ebp - 0x320], edi
mov eax, dword [ebp - 0x24]
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4580b7
mov dword [ebp - 0x320], edi
nop dword [eax]
mov ax, word [ecx*2 + 0x4c8808]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x4580a0
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x20], 1
test eax, eax
jne 0x4580e0
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
sub esp, 0x10
mov byte [ebp - 0x20], 1
lea ecx, [ebp - 0x2c0]
push 0xc8
push 0x84
push 0x87
push eax
call fcn.00411c70
cmp dword [ebp - 0x90], 0
mov dword [ebp - 0x384], eax
je 0x45819b
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45819b
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x12
push 0xeb
push 0xaf
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4c88a0
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x45819b
push eax
push 4
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
mov edi, eax
movaps xmm0, xmmword [0x4ccba0]
mov dword [ebp - 0x390], edi
lea edx, [edi + edi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x4581a5
mov dword [ebp - 0x390], 0
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x4581b5
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x2c], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4c88f0], 0
jne 0x4581c0
mov dword [ebp - 0x30], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edi, dword [ebp - 0x320]
mov edx, eax
mov eax, dword [ebp - 0x30]
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x34], edx
test eax, eax
jle 0x45821a
mov dword [ebp - 0x320], edi
mov ax, word [ecx*2 + 0x4c88f0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
cmp ecx, eax
jl 0x458203
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x34]
mov byte [ebp - 0x2c], 1
test eax, eax
jne 0x458243
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x34], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], ecx
sub esp, 0x10
mov byte [ebp - 0x2c], 1
lea ecx, [ebp - 0x2c0]
push 0x5a
push 0xac
push 0xff
push eax
call fcn.00411c70
push 0x40
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x380], eax
call fcn.00414360
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4582f3
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x12
push 0x32
push 0xaf
and eax, 1
push 0x17c
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c8924
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x4582f3
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cc950]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
jne 0x458311
mov dword [ebp - 0x39c], 0
jmp 0x4583a0
test byte [ebp - 0x78], 1
mov eax, 0x50020080
push 0
push dword [ebp - 0x1a4]
mov ecx, 0x50000080
mov dword [ebp - 0x320], edi
cmovne ecx, eax
mov eax, dword [ebp - 0x280]
inc eax
or ecx, 0x10000
push eax
push dword [ebp - 0x8c]
push 0x14
push 0x78
push 0xad
push 0x1ae
push ecx
push 0
push 0x4c0220
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
jne 0x458371
mov dword [ebp - 0x39c], eax
jmp 0x4583a0
push eax
push 0xc
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4cccb0]
mov dword [ebp - 0x39c], eax
lea edx, [eax + eax*8]
mov dword [ebp - 0x320], edi
movups xmmword [ecx + edx*8 + 0x24], xmm0
push 0x40
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
call fcn.00414360
cmp dword [ebp - 0x90], 0
je 0x458440
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x458440
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x12
push 0xeb
push 0xd7
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4c8938
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x458440
push eax
push 4
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccbb0]
mov dword [ebp - 0x354], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x45844a
mov dword [ebp - 0x354], 0
push 0x40
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
call fcn.00414360
lea ecx, [ebp - 0x34]
call fcn.0041e330
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x458480
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x34], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], ecx
sub esp, 0x10
mov byte [ebp - 0x2c], 1
lea ecx, [ebp - 0x2c0]
push 0x5a
push 0xd4
push 0xff
push eax
call fcn.00411c70
push 0x40
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x350], eax
call fcn.00414360
cmp dword [ebp - 0x90], 0
je 0x458545
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x458545
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x12
push 0x64
push 0xd7
and eax, 1
push 0x17c
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4c897c
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x458545
push eax
push 4
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4cca50]
mov dword [ebp - 0x38c], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x45854f
mov dword [ebp - 0x38c], 0
push 0x40
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
call fcn.00414360
cmp dword [ebp - 0x90], 0
je 0x4585ef
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4585ef
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x12
push 0x96
push 0xff
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4c8998
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x4585ef
push eax
push 4
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccae0]
mov dword [ebp - 0x358], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x4585f9
mov dword [ebp - 0x358], 0
cmp dword [ebp - 0x90], 0
je 0x458687
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x458687
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x12
push 0x96
push 0xff
and eax, 1
push 0xfa
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4c89c8
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x458687
push eax
push 4
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccaf0]
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x458689
xor eax, eax
cmp dword [ebp - 0x328], 2
mov dword [ebp - 0x324], eax
jne 0x4586a6
push 0x40
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00414360
cmp dword [ebp - 0x90], 0
je 0x458737
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x458737
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x1e
push 0x64
push 0x11d
and eax, 1
push 0x136
shl eax, 0x11
add eax, 0x50010000
push eax
push 0x4c033c
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x458737
push eax
push 3
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccee0]
mov dword [ebp - 0x398], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x458741
mov dword [ebp - 0x398], 0
sub esp, 8
lea ecx, [ebp - 0x2c0]
push 0x4c4258
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0x90], 0
je 0x4587e7
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4587e7
mov eax, dword [ebp - 0x280]
push 0
push dword [ebp - 0x1a4]
inc eax
push eax
push dword [ebp - 0x8c]
movzx eax, byte [ebp - 0x78]
push 0x20
push 0x78
push 0x11d
and eax, 1
push 0x1ae
shl eax, 0x11
add eax, 0x50010000
push eax
push 0x4c89f4
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x4587e7
push eax
push 3
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccf60]
mov dword [ebp - 0x3a0], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x4587f1
mov dword [ebp - 0x3a0], 0
sub esp, 8
lea ecx, [ebp - 0x2c0]
push 0x4c8a0c
push 0xffffffffffffffff
call fcn.00415120
mov eax, 0x1b
mov byte [ebp - 0x1c], 1
mov word [ebp - 0x1a], ax
mov eax, dword [ebp - 0x398]
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x45882b
push eax
call dword [sym.imp.USER32.dll_DestroyAcceleratorTable]
push 1
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_CreateAcceleratorTableW]
xor ecx, ecx
cmp eax, 0xffffffff
push 1
cmove eax, ecx
lea ecx, [ebp - 0x2c0]
push 1
mov dword [ebp - 0x7c], eax
call fcn.0040db40
push 0
mov ecx, esi
call fcn.004284d0
test eax, eax
je 0x459d0e
mov edx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
nop dword [eax + eax]
mov eax, dword [esi + 0x22c]
cmp eax, 0xfffffffa
je 0x459e07
lea ecx, [ebp - 0x2c0]
cmp dword [esi + 0x25c], ecx
jne 0x459cf4
cmp eax, dword [ebp - 0x398]
je 0x459e07
cmp eax, dword [ebp - 0x36c]
jne 0x458da7
mov eax, dword [ebp - 0x36c]
mov edx, eax
mov ecx, dword [ebp - 0x284]
cmp eax, 0xffffffff
jne 0x4588c4
mov edx, dword [ebp - 0x280]
jmp 0x4588df
test ecx, ecx
je 0x4588f7
cmp eax, 1
jl 0x4588f7
cmp eax, dword [ebp - 0x280]
jg 0x4588f7
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x4588f7
push 0
push 0
push 0x400
lea eax, [edx + edx*8]
push dword [ecx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4588f9
xor eax, eax
push dword [ebp - 0x370]
cdq
push dword [ebp - 0x37c]
push edx
push eax
call fcn.0049a7b0
mov dword [ebp - 0x31c], eax
mov ecx, edx
add eax, dword [ebp - 0x368]
mov dword [ebp - 0x2c4], ecx
mov esi, eax
adc ecx, dword [ebp - 0x378]
mov dword [ebp - 0x334], ecx
shrd esi, ecx, 0x14
mov dword [ebp - 0x330], eax
shr ecx, 0x14
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00401cb0
mov esi, eax
cmp dword [esi], 0
jne 0x458961
push 2
call fcn.0048a02b
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
push 0
mov byte [esi + 8], 1
lea ecx, [ebp - 0x2c0]
push dword [esi]
push dword [ebp - 0x374]
call fcn.00414a80
mov eax, dword [ebp - 0x364]
lea ecx, [ebp - 0x2c0]
sub eax, dword [ebp - 0x31c]
push dword [ebp - 0x340]
mov dword [ebp - 0x328], eax
mov eax, dword [ebp - 0x34c]
sbb eax, dword [ebp - 0x2c4]
mov dword [ebp - 0x32c], eax
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x458a0b
test eax, eax
je 0x4589c5
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x458a03
nop dword [eax + eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x4589f0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x458a22
test eax, eax
je 0x458a18
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00401fd0
mov esi, eax
mov eax, edx
mov edx, dword [ebp - 0x32c]
shld eax, esi, 0x14
shl esi, 0x14
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x320], esi
cmp eax, edx
jb 0x458a6b
mov ecx, dword [ebp - 0x328]
ja 0x458a5b
cmp esi, ecx
jbe 0x458a6b
mov esi, ecx
mov dword [ebp - 0x320], ecx
mov eax, edx
mov dword [ebp - 0x344], edx
mov ecx, esi
shrd ecx, eax, 0x14
shr eax, 0x14
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00401cb0
mov ecx, eax
mov dword [ebp - 0x31c], ecx
cmp dword [ecx], 0
jne 0x458aa5
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x31c]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
push 0
mov byte [ecx + 8], 1
push dword [ecx]
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x340]
call fcn.00414a80
push ecx
push dword [ebp - 0x32c]
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x328]
push dword [ebp - 0x344]
push esi
push edi
call fcn.00415380
sub esp, 8
lea ecx, [ebp - 0x28]
push dword [ebp - 0x334]
push dword [ebp - 0x330]
call fcn.00402130
mov dword [ebp - 0x32c], eax
mov byte [eax + 8], 0
mov esi, dword [eax + 4]
test esi, esi
jne 0x458b1c
mov ecx, dword [eax]
test ecx, ecx
je 0x458b19
cmp word [ecx], si
je 0x458b19
inc esi
cmp word [ecx + esi*2], 0
jne 0x458b11
mov dword [eax + 4], esi
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x458b20
add esi, eax
xor ecx, ecx
mov edx, 2
mov dword [ebp - 0x2c4], esi
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
mov dword [ebp - 0x330], edi
mov eax, dword [ebp - 0x32c]
add esp, 4
mov dword [ebp - 0x334], edx
mov ecx, dword [eax]
mov dword [ebp - 0x31c], ecx
test ecx, ecx
je 0x458ba7
movzx ecx, word [ecx]
mov dword [ebp - 0x330], edi
mov eax, ecx
test cx, cx
je 0x458ba7
mov esi, dword [ebp - 0x31c]
sub esi, edx
mov dword [ebp - 0x330], edi
nop
mov word [edx], cx
add edx, 2
movzx eax, word [edx + esi]
mov ecx, eax
test ax, ax
jne 0x458b90
mov esi, dword [ebp - 0x2c4]
mov edi, 0x4bffa0
mov ecx, 0x20
sub edi, edx
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x458bb3
mov edi, dword [ebp - 0x32c]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x458bde
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x334]
mov dword [edi], eax
mov dword [edi + 4], esi
mov byte [edi + 8], 1
test eax, eax
jne 0x458c05
push 2
call fcn.0048a02b
add esp, 4
mov dword [edi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [edi + 4], ecx
push 0
mov byte [edi + 8], 1
lea ecx, [ebp - 0x2c0]
push dword [edi]
push dword [ebp - 0x394]
call fcn.00414a80
sub esp, 8
lea ecx, [ebp - 0x28]
push dword [ebp - 0x344]
push dword [ebp - 0x320]
call fcn.00402130
mov edi, eax
mov dword [ebp - 0x334], edi
mov byte [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
jne 0x458c5e
mov eax, dword [edi]
test eax, eax
je 0x458c5b
cmp word [eax], si
je 0x458c5b
inc esi
cmp word [eax + esi*2], 0
jne 0x458c53
mov dword [edi + 4], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x458c60
add esi, eax
xor ecx, ecx
mov edx, 2
mov dword [ebp - 0x32c], esi
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [edi]
add esp, 4
mov edi, dword [ebp - 0x330]
mov edx, eax
mov dword [ebp - 0x328], eax
mov dword [ebp - 0x31c], ecx
mov dword [ebp - 0x320], edi
test ecx, ecx
je 0x458cf7
movzx ecx, word [ecx]
mov edi, ecx
mov dword [ebp - 0x2c4], edi
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x320], edi
test cx, cx
je 0x458cf7
mov esi, dword [ebp - 0x31c]
sub esi, eax
mov dword [ebp - 0x320], edi
mov eax, ecx
movzx ecx, ax
nop
mov word [edx], cx
add edx, 2
movzx eax, word [esi + edx]
mov ecx, eax
test ax, ax
jne 0x458ce0
mov esi, dword [ebp - 0x32c]
mov edi, 0x4bffa0
mov ecx, 0x20
sub edi, edx
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x458d03
mov edi, dword [ebp - 0x334]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x458d2e
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x328]
mov dword [edi], eax
mov dword [edi + 4], esi
mov byte [edi + 8], 1
test eax, eax
jne 0x458d55
push 2
call fcn.0048a02b
add esp, 4
mov dword [edi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [edi + 4], ecx
push 0
mov byte [edi + 8], 1
lea ecx, [ebp - 0x2c0]
push dword [edi]
push dword [ebp - 0x338]
call fcn.00414a80
mov esi, dword [ebp - 0x33c]
mov eax, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
add esi, 0x598
push esi
call eax
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.0049aa80
divsd xmm0, qword [esi + 0x10]
mov edi, dword [ebp - 0x320]
movsd qword [esi + 8], xmm0
mov esi, dword [ebp - 0x33c]
jmp 0x459cf4
cmp eax, 0xffffffb4
jne 0x459306
mov eax, dword [ebp - 0x374]
cmp dword [esi + 0x238], eax
jne 0x459306
movsd xmm0, qword [esi + 0x5a0]
lea ecx, [esi + 0x598]
ucomisd xmm0, xmm1
movsd qword [ebp - 0x360], xmm0
lahf
test ah, 0x44
jnp 0x459306
push ecx
call edx
mov edx, dword [esi + 0x59c]
mov ecx, dword [esi + 0x598]
call fcn.0049aa80
divsd xmm0, qword [esi + 0x5a8]
subsd xmm0, qword [ebp - 0x360]
comisd xmm0, xmmword [0x4cc7b0]
jbe 0x4592fd
push dword [ebp - 0x374]
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x458e7d
test eax, eax
je 0x458e3f
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x458e75
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x458e62
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x458e94
test eax, eax
je 0x458e8a
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00401fd0
mov edi, dword [ebp - 0x364]
mov esi, eax
mov eax, edx
shld eax, esi, 0x14
push ecx
push dword [ebp - 0x34c]
shl esi, 0x14
lea ecx, [ebp - 0x2c0]
sub esi, dword [ebp - 0x368]
push edi
sbb eax, dword [ebp - 0x378]
push eax
push esi
push dword [ebp - 0x36c]
mov dword [ebp - 0x334], eax
call fcn.00415380
push dword [ebp - 0x340]
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov dword [ebp - 0x31c], eax
test eax, eax
mov eax, dword [ebp - 0x28]
jne 0x458f4b
test eax, eax
je 0x458f09
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x458f43
nop dword [eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x458f30
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x458f68
test eax, eax
je 0x458f58
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x31c]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00401fd0
mov ecx, eax
mov eax, dword [ebp - 0x34c]
shld edx, ecx, 0x14
mov dword [ebp - 0x344], eax
mov eax, dword [ebp - 0x334]
mov dword [ebp - 0x328], edx
mov edx, edi
mov edi, dword [ebp - 0x344]
shl ecx, 0x14
sub edx, esi
mov dword [ebp - 0x32c], ecx
sbb edi, eax
mov dword [ebp - 0x35c], edx
cmp dword [ebp - 0x328], edi
mov dword [ebp - 0x344], edi
mov edi, dword [ebp - 0x320]
jb 0x459032
ja 0x458fc7
cmp ecx, edx
jbe 0x459032
mov eax, dword [ebp - 0x344]
mov ecx, edx
mov dword [ebp - 0x328], eax
shrd ecx, eax, 0x14
mov dword [ebp - 0x32c], edx
shr eax, 0x14
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00401cb0
mov ecx, eax
mov dword [ebp - 0x31c], ecx
cmp dword [ecx], 0
jne 0x459013
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x31c]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
push 0
mov byte [ecx + 8], 1
push dword [ecx]
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x340]
call fcn.00414a80
mov eax, dword [ebp - 0x334]
sub esp, 8
lea ecx, [ebp - 0x28]
push eax
push esi
call fcn.00402130
mov dword [ebp - 0x334], eax
mov byte [eax + 8], 0
mov esi, dword [eax + 4]
test esi, esi
jne 0x45906b
mov ecx, dword [eax]
test ecx, ecx
je 0x459068
cmp word [ecx], si
je 0x459068
nop dword [eax + eax]
inc esi
cmp word [ecx + esi*2], 0
jne 0x459060
mov dword [eax + 4], esi
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x459070
add esi, eax
xor ecx, ecx
mov edx, 2
mov dword [ebp - 0x2c4], esi
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
mov dword [ebp - 0x330], edi
mov eax, dword [ebp - 0x334]
add esp, 4
mov dword [ebp - 0x320], edx
mov ecx, dword [eax]
mov dword [ebp - 0x31c], ecx
test ecx, ecx
je 0x4590f7
movzx ecx, word [ecx]
mov dword [ebp - 0x330], edi
mov eax, ecx
test cx, cx
je 0x4590f7
mov esi, dword [ebp - 0x31c]
sub esi, edx
mov dword [ebp - 0x330], edi
nop
mov word [edx], cx
add edx, 2
movzx eax, word [edx + esi]
mov ecx, eax
test ax, ax
jne 0x4590e0
mov esi, dword [ebp - 0x2c4]
mov edi, 0x4bffa0
mov ecx, 0x20
sub edi, edx
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x459103
mov edi, dword [ebp - 0x334]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x45912e
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x320]
mov dword [edi], eax
mov dword [edi + 4], esi
mov byte [edi + 8], 1
test eax, eax
jne 0x459155
push 2
call fcn.0048a02b
add esp, 4
mov dword [edi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [edi + 4], ecx
push 0
mov byte [edi + 8], 1
lea ecx, [ebp - 0x2c0]
push dword [edi]
push dword [ebp - 0x394]
call fcn.00414a80
sub esp, 8
lea ecx, [ebp - 0x28]
push dword [ebp - 0x328]
push dword [ebp - 0x32c]
call fcn.00402130
mov edi, eax
mov dword [ebp - 0x334], edi
mov byte [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
jne 0x4591ae
mov eax, dword [edi]
test eax, eax
je 0x4591ab
cmp word [eax], si
je 0x4591ab
inc esi
cmp word [eax + esi*2], 0
jne 0x4591a3
mov dword [edi + 4], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x4591b0
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, eax
add esp, 4
mov eax, dword [edi]
mov edx, ecx
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x2c4], ecx
mov dword [ebp - 0x320], edi
test eax, eax
je 0x459241
movzx ecx, word [eax]
mov edi, ecx
mov dword [ebp - 0x31c], edi
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x320], edi
test cx, cx
je 0x459241
sub eax, edx
mov dword [ebp - 0x320], edi
mov dword [ebp - 0x348], eax
mov eax, ecx
mov edi, dword [ebp - 0x348]
movzx ecx, ax
nop dword [eax + eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x459230
mov edi, 0x4bffa0
mov ecx, 0x20
sub edi, edx
nop dword [eax]
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x459250
mov ecx, dword [ebp - 0x334]
xor eax, eax
mov edi, dword [ebp - 0x320]
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x459287
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x334]
add esp, 4
mov eax, dword [ebp - 0x2c4]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov byte [ecx + 8], 1
test eax, eax
jne 0x4592b4
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x334]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
push 0
mov byte [ecx + 8], 1
push dword [ecx]
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x338]
call fcn.00414a80
push ecx
push dword [ebp - 0x344]
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x35c]
push dword [ebp - 0x328]
push dword [ebp - 0x32c]
push edi
call fcn.00415380
mov esi, dword [ebp - 0x33c]
jmp 0x459cf4
mov edx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
mov eax, dword [esi + 0x22c]
cmp eax, edi
jne 0x459690
mov eax, dword [ebp - 0x36c]
mov esi, eax
mov ecx, dword [ebp - 0x284]
cmp eax, 0xffffffff
jne 0x45932f
mov esi, dword [ebp - 0x280]
jmp 0x45934c
mov edx, dword [ebp - 0x280]
test ecx, ecx
je 0x459376
cmp eax, 1
jl 0x459376
cmp eax, edx
jg 0x459376
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x459376
push 0
push 0
push 0x400
lea eax, [esi + esi*8]
push dword [ecx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov dword [ebp - 0x2c4], eax
jmp 0x459380
mov dword [ebp - 0x2c4], 0
mov esi, edi
cmp edi, 0xffffffff
jne 0x45938b
mov esi, edx
jmp 0x4593a2
test ecx, ecx
je 0x4593bc
cmp edi, 1
jl 0x4593bc
cmp edi, edx
jg 0x4593bc
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x4593bc
push 0
push 0
push 0x400
lea eax, [esi + esi*8]
push dword [ecx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, eax
jmp 0x4593be
xor edi, edi
push dword [ebp - 0x370]
mov eax, dword [ebp - 0x2c4]
push dword [ebp - 0x37c]
cdq
push edx
push eax
call fcn.0049a7b0
mov esi, dword [ebp - 0x364]
mov ecx, dword [ebp - 0x34c]
sub esi, eax
mov eax, edi
sbb ecx, edx
cdq
push ecx
push esi
push edx
push eax
call fcn.0049a7b0
mov edi, eax
mov ecx, edx
mov edx, 0xe147ae15
mov dword [ebp - 0x32c], edi
mul edx
mov dword [ebp - 0x2c4], ecx
mov dword [ebp - 0x360], eax
mov esi, edx
mov eax, edi
mov edx, 0x47ae147a
mul edx
mov edi, eax
mov dword [ebp - 0x348], edx
mov eax, ecx
mov ecx, 0xe147ae15
mul ecx
mov ecx, eax
mov dword [ebp - 0x35c], edx
mov eax, dword [ebp - 0x2c4]
mov edx, 0x47ae147a
mul edx
add ecx, esi
mov dword [ebp - 0x334], edx
mov edx, dword [ebp - 0x35c]
adc edx, 0
mov dword [ebp - 0x31c], eax
add edi, ecx
mov ecx, dword [ebp - 0x348]
mov dword [ebp - 0x360], edi
mov edi, dword [ebp - 0x2c4]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [ebp - 0x31c]
adc eax, eax
add ecx, edx
mov edx, dword [ebp - 0x334]
adc edx, eax
mov eax, dword [ebp - 0x32c]
sub eax, ecx
sbb edi, edx
shrd eax, edi, 1
shr edi, 1
add eax, ecx
adc edi, edx
shrd eax, edi, 6
mov dword [ebp - 0x32c], eax
mov ecx, eax
shr edi, 6
mov eax, edi
shrd ecx, eax, 0x14
shr eax, 0x14
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00401cb0
mov esi, eax
cmp dword [esi], 0
jne 0x4594d7
push 2
call fcn.0048a02b
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
push 0
mov byte [esi + 8], 1
lea ecx, [ebp - 0x2c0]
push dword [esi]
push dword [ebp - 0x340]
call fcn.00414a80
sub esp, 8
lea ecx, [ebp - 0x28]
push edi
mov edi, dword [ebp - 0x32c]
push edi
call fcn.00402130
mov dword [ebp - 0x328], eax
mov byte [eax + 8], 0
mov esi, dword [eax + 4]
test esi, esi
jne 0x45952b
mov ecx, dword [eax]
test ecx, ecx
je 0x459528
cmp word [ecx], si
je 0x459528
nop
inc esi
cmp word [ecx + esi*2], 0
jne 0x459520
mov dword [eax + 4], esi
mov edi, dword [ebp - 0x320]
xor eax, eax
nop dword [eax]
nop word [eax + eax]
inc eax
mov dword [ebp - 0x32c], edi
cmp word [eax*2 + 0x4bffa0], 0
jne 0x459540
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [ebp - 0x328]
mov edx, eax
add esp, 4
mov dword [ebp - 0x2c4], edx
mov dword [ebp - 0x320], edi
mov eax, dword [ecx]
test eax, eax
je 0x4595d1
movzx ecx, word [eax]
mov edi, ecx
mov dword [ebp - 0x35c], edi
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x320], edi
test cx, cx
je 0x4595d1
sub eax, edx
mov dword [ebp - 0x320], edi
mov dword [ebp - 0x348], eax
mov eax, ecx
mov edi, dword [ebp - 0x348]
movzx ecx, ax
nop
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x4595c0
mov ecx, 0x4bffa0
mov edi, 0x20
sub ecx, edx
nop dword [eax]
mov word [edx], di
lea edx, [edx + 2]
movzx eax, word [ecx + edx]
mov edi, eax
test ax, ax
jne 0x4595e0
mov ecx, dword [ebp - 0x328]
xor eax, eax
mov edi, dword [ebp - 0x320]
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x459617
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x328]
add esp, 4
mov eax, dword [ebp - 0x2c4]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov byte [ecx + 8], 1
test eax, eax
jne 0x459644
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x328]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
push 0
mov byte [ecx + 8], 1
push dword [ecx]
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x338]
call fcn.00414a80
mov esi, dword [ebp - 0x33c]
mov eax, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
add esi, 0x598
push esi
call eax
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.0049aa80
divsd xmm0, qword [esi + 0x10]
movsd qword [esi + 8], xmm0
mov esi, dword [ebp - 0x33c]
jmp 0x459cf4
cmp eax, 0xffffffb4
jne 0x459a2f
mov eax, dword [ebp - 0x340]
cmp dword [esi + 0x238], eax
jne 0x459a2f
movsd xmm0, qword [esi + 0x5a0]
lea ecx, [esi + 0x598]
ucomisd xmm0, xmm1
movsd qword [ebp - 0x360], xmm0
lahf
test ah, 0x44
jnp 0x459a2f
push ecx
call edx
mov edx, dword [esi + 0x59c]
mov ecx, dword [esi + 0x598]
call fcn.0049aa80
divsd xmm0, qword [esi + 0x5a8]
subsd xmm0, qword [ebp - 0x360]
comisd xmm0, xmmword [0x4cc7b0]
jbe 0x459a2f
mov eax, dword [ebp - 0x36c]
mov edx, eax
mov ecx, dword [ebp - 0x284]
cmp eax, 0xffffffff
jne 0x45971c
mov edx, dword [ebp - 0x280]
jmp 0x459737
test ecx, ecx
je 0x45974f
cmp eax, 1
jl 0x45974f
cmp eax, dword [ebp - 0x280]
jg 0x45974f
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x45974f
push 0
push 0
push 0x400
lea eax, [edx + edx*8]
push dword [ecx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x459751
xor eax, eax
push dword [ebp - 0x370]
cdq
push dword [ebp - 0x37c]
push edx
push eax
call fcn.0049a7b0
mov ecx, dword [ebp - 0x364]
push dword [ebp - 0x340]
sub ecx, eax
mov eax, dword [ebp - 0x34c]
mov dword [ebp - 0x334], ecx
lea ecx, [ebp - 0x2c0]
sbb eax, edx
mov dword [ebp - 0x31c], eax
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x4597eb
test eax, eax
je 0x4597a8
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4597e3
nop dword [eax + eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x4597d0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x459802
test eax, eax
je 0x4597f8
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00401fd0
mov ecx, edx
mov edx, dword [ebp - 0x31c]
shld ecx, eax, 0x14
shl eax, 0x14
mov dword [ebp - 0x344], ecx
mov dword [ebp - 0x330], eax
cmp ecx, edx
jb 0x45989c
ja 0x459837
cmp eax, dword [ebp - 0x334]
jbe 0x45989c
mov ecx, dword [ebp - 0x334]
mov eax, edx
mov dword [ebp - 0x330], ecx
shrd ecx, eax, 0x14
mov dword [ebp - 0x344], edx
shr eax, 0x14
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00401cb0
mov esi, eax
cmp dword [esi], 0
jne 0x459877
push 2
call fcn.0048a02b
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
push 0
mov byte [esi + 8], 1
lea ecx, [ebp - 0x2c0]
push dword [esi]
push dword [ebp - 0x340]
call fcn.00414a80
mov eax, dword [ebp - 0x330]
mov ecx, dword [ebp - 0x344]
sub esp, 8
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.00402130
mov dword [ebp - 0x328], eax
mov byte [eax + 8], 0
mov esi, dword [eax + 4]
test esi, esi
jne 0x4598d0
mov ecx, dword [eax]
test ecx, ecx
je 0x4598cd
cmp word [ecx], si
je 0x4598cd
inc esi
cmp word [ecx + esi*2], 0
jne 0x4598c5
mov dword [eax + 4], esi
xor eax, eax
nop dword [eax]
nop word [eax + eax]
inc eax
mov dword [ebp - 0x32c], edi
cmp word [eax*2 + 0x4bffa0], 0
jne 0x4598e0
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [ebp - 0x328]
mov edx, eax
add esp, 4
mov dword [ebp - 0x2c4], edx
mov dword [ebp - 0x320], edi
mov eax, dword [ecx]
test eax, eax
je 0x459971
movzx ecx, word [eax]
mov edi, ecx
mov dword [ebp - 0x35c], edi
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x320], edi
test cx, cx
je 0x459971
sub eax, edx
mov dword [ebp - 0x320], edi
mov dword [ebp - 0x348], eax
mov eax, ecx
mov edi, dword [ebp - 0x348]
movzx ecx, ax
nop
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x459960
mov ecx, 0x4bffa0
mov edi, 0x20
sub ecx, edx
nop dword [eax]
mov word [edx], di
lea edx, [edx + 2]
movzx eax, word [edx + ecx]
mov edi, eax
test ax, ax
jne 0x459980
mov ecx, dword [ebp - 0x328]
xor eax, eax
mov edi, dword [ebp - 0x320]
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x4599b7
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x328]
add esp, 4
mov eax, dword [ebp - 0x2c4]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov byte [ecx + 8], 1
test eax, eax
jne 0x4599e4
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x328]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
push 0
mov byte [ecx + 8], 1
push dword [ecx]
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x338]
call fcn.00414a80
mov eax, dword [ebp - 0x344]
push ecx
push dword [ebp - 0x31c]
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x334]
push eax
mov eax, dword [ebp - 0x330]
push eax
push edi
call fcn.00415380
mov esi, dword [ebp - 0x33c]
jmp 0x459cf4
mov eax, dword [esi + 0x22c]
mov ecx, dword [ebp - 0x390]
cmp eax, ecx
jne 0x459ae7
push 4
push ecx
lea ecx, [ebp - 0x2c0]
call fcn.00415560
mov edi, eax
lea ecx, [ebp - 0x2c0]
test edi, edi
mov eax, 0x20
mov esi, 0x40
cmovne esi, eax
push esi
push dword [ebp - 0x380]
mov dword [ebp - 0x35c], esi
call fcn.00414360
push esi
push dword [ebp - 0x39c]
lea ecx, [ebp - 0x2c0]
call fcn.00414360
test edi, edi
lea ecx, [ebp - 0x2c0]
mov eax, 0x20
mov esi, 0x48
cmovne esi, eax
push esi
push dword [ebp - 0x354]
call fcn.00414360
push dword [ebp - 0x35c]
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x350]
call fcn.00414360
push esi
push dword [ebp - 0x38c]
lea ecx, [ebp - 0x2c0]
call fcn.00414360
mov edi, dword [ebp - 0x320]
mov esi, dword [ebp - 0x33c]
jmp 0x459cf4
cmp eax, 0xffffffbf
jne 0x459c38
mov ecx, dword [ebp - 0x380]
cmp dword [esi + 0x238], ecx
jne 0x459c38
push ecx
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov edi, eax
mov eax, dword [ebp - 0x28]
test edi, edi
jne 0x459b65
test eax, eax
je 0x459b24
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459b5a
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x459b47
xor ecx, ecx
mov word [edx + eax*2], cx
mov edi, dword [ebp - 0x28]
jmp 0x459b7c
test eax, eax
je 0x459b72
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
cmp edi, 0x4c80bc
jne 0x459b8f
mov cl, 1
jmp 0x459c0c
test edi, edi
je 0x459c0a
mov esi, 0x4c80bc
movzx eax, word [edi]
mov ecx, eax
test ax, ax
jne 0x459bb1
cmp word [esi], ax
jne 0x459bb6
mov esi, dword [ebp - 0x33c]
mov cl, 1
jmp 0x459c0c
cmp ax, word [esi]
je 0x459bfc
xor edx, edx
cmp dx, ax
jne 0x459bc5
mov dword [ebp - 0x31c], edx
jmp 0x459bd7
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x31c], eax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x459be7
xor eax, eax
jmp 0x459bf3
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x459c04
add edi, 2
add esi, 2
jmp 0x459b98
mov esi, dword [ebp - 0x33c]
xor cl, cl
test cl, cl
mov eax, 0x48
mov ecx, 0x20
cmovne eax, ecx
lea ecx, [ebp - 0x2c0]
push eax
push dword [ebp - 0x38c]
call fcn.00414360
mov edi, dword [ebp - 0x320]
jmp 0x459cf4
mov ecx, dword [ebp - 0x354]
cmp eax, ecx
jne 0x459c9c
push 4
push ecx
lea ecx, [ebp - 0x2c0]
call fcn.00415560
mov esi, eax
mov ecx, 0x20
test esi, esi
mov eax, 0x40
cmovne ecx, eax
push ecx
push dword [ebp - 0x358]
lea ecx, [ebp - 0x2c0]
call fcn.00414360
test esi, esi
mov eax, 0x20
mov ecx, 0x40
cmovne ecx, eax
push ecx
push dword [ebp - 0x350]
lea ecx, [ebp - 0x2c0]
call fcn.00414360
mov esi, dword [ebp - 0x33c]
jmp 0x459cf4
cmp eax, dword [ebp - 0x3a0]
jne 0x459cf4
push 1
push 0
lea ecx, [ebp - 0x2c0]
call fcn.0040db40
push 1
mov ecx, esi
call fcn.004284d0
test eax, eax
jne 0x459cb3
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
mov ecx, esi
push eax
push 1
push 0x4c8a40
call fcn.00432b40
cmp eax, 1
je 0x459d0e
push 1
push 5
lea ecx, [ebp - 0x2c0]
call fcn.0040db40
push 0
mov ecx, esi
call fcn.004284d0
mov edx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
test eax, eax
jne 0x458870
mov dword [ebp - 0x2fc], 0
mov dword [ebp - 0x300], 0
mov byte [ebp - 0x2f8], 1
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 0x2f4], 0
mov byte [ebp - 0x2ec], 1
mov dword [ebp - 0x2e4], 0
mov dword [ebp - 0x2e8], 0
mov byte [ebp - 0x2e0], 1
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2dc], 0
mov byte [ebp - 0x2d4], 1
mov word [ebp - 0x2d0], 0
mov byte [ebp - 0x2ce], 0
push 3
push dword [ebp - 0x3a4]
mov byte [ebp - 4], 0xa
lea ecx, [esi + 0x2a8]
mov dword [ebp - 0x318], esi
push dword [esi + 0xbc]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x459e0f
test eax, eax
je 0x459dc3
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459df9
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x459de6
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
jmp 0x459e24
or edi, 0xffffffff
jmp 0x45bfeb
test eax, eax
je 0x459e1c
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
test esi, esi
je 0x459e53
test eax, eax
jne 0x459e42
cmp word [esi], ax
je 0x459e3d
inc eax
cmp word [esi + eax*2], 0
jne 0x459e35
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x459e53
push esi
mov byte [ebp - 0x20], 1
call fcn.0048ddfc
add esp, 4
jmp 0x459e59
mov byte [ebp - 0x20], 0
xor eax, eax
push dword [ebp - 0x340]
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x314], eax
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x459ecb
test eax, eax
je 0x459e86
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459ec3
nop dword [eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x459eb0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x459ee2
test eax, eax
je 0x459ed8
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00401fd0
push dword [ebp - 0x374]
shld edx, eax, 0x14
lea ecx, [ebp - 0x2c0]
shl eax, 0x14
mov dword [ebp - 0x310], eax
mov dword [ebp - 0x30c], edx
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x459f6b
test eax, eax
je 0x459f28
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459f63
nop dword [eax + eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x459f50
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x459f82
test eax, eax
je 0x459f78
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00401fd0
push dword [ebp - 0x384]
shld edx, eax, 0x14
lea ecx, [ebp - 0x2c0]
shl eax, 0x14
mov dword [ebp - 0x308], eax
mov dword [ebp - 0x304], edx
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x45a00e
test eax, eax
je 0x459fc8
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45a003
nop dword [eax + eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x459ff0
xor ecx, ecx
mov word [edx + eax*2], cx
mov esi, dword [ebp - 0x28]
jmp 0x45a025
test eax, eax
je 0x45a01b
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
cmp esi, 0x4c8aa0
je 0x45a057
test esi, esi
je 0x45a1d2
mov edi, 0x4c8aa0
nop
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a179
cmp word [edi], ax
jne 0x45a17e
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a06a
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8acc], 0
jne 0x45a073
mov dword [ebp - 0x2fc], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a0d0
mov ax, word [ecx*2 + 0x4c8acc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x45a0b3
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x2f8], 1
push 4
push dword [ebp - 0x390]
lea ecx, [ebp - 0x2c0]
call fcn.00415560
lea ecx, [ebp - 0x2c0]
test eax, eax
je 0x45ab41
push dword [ebp - 0x380]
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x2f4]
test esi, esi
jne 0x45a98c
test eax, eax
je 0x45a126
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x2ec], 0
mov dword [ebp - 0x2f0], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2f0]
xor ecx, ecx
mov dword [ebp - 0x2f4], edx
test eax, eax
jle 0x45a16e
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2f4]
cmp ecx, eax
jl 0x45a155
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45a9a9
cmp ax, word [edi]
je 0x45a1c4
xor edx, edx
cmp dx, ax
jne 0x45a18d
mov dword [ebp - 0x31c], edx
jmp 0x45a19f
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x31c], eax
movzx eax, word [edi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x45a1af
xor eax, eax
jmp 0x45a1bb
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a1cf
add esi, 2
add edi, 2
jmp 0x45a040
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c2fd8
je 0x45a1fe
test esi, esi
je 0x45a2eb
mov edi, 0x4c2fd8
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a292
cmp word [edi], ax
jne 0x45a297
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a211
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c8ad0], 0
jne 0x45a220
mov dword [ebp - 0x2fc], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a0d0
nop dword [eax]
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8ad0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x45a270
jmp 0x45a0d0
cmp ax, word [edi]
je 0x45a2dd
xor edx, edx
cmp dx, ax
jne 0x45a2a6
mov dword [ebp - 0x31c], edx
jmp 0x45a2b8
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x31c], eax
movzx eax, word [edi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x45a2c8
xor eax, eax
jmp 0x45a2d4
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a2e8
add esi, 2
add edi, 2
jmp 0x45a1e7
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c7938
je 0x45a317
test esi, esi
je 0x45a3fb
mov edi, 0x4c7938
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a3a2
cmp word [edi], ax
jne 0x45a3a7
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a32a
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8ad8], 0
jne 0x45a333
mov dword [ebp - 0x2fc], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a0d0
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c8ad8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x45a380
jmp 0x45a0d0
cmp ax, word [edi]
je 0x45a3ed
xor edx, edx
cmp dx, ax
jne 0x45a3b6
mov dword [ebp - 0x31c], edx
jmp 0x45a3c8
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x31c], eax
movzx eax, word [edi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x45a3d8
xor eax, eax
jmp 0x45a3e4
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a3f8
add esi, 2
add edi, 2
jmp 0x45a300
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c009c
je 0x45a427
test esi, esi
je 0x45a50b
mov edi, 0x4c009c
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a4b2
cmp word [edi], ax
jne 0x45a4b7
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a43a
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8adc], 0
jne 0x45a443
mov dword [ebp - 0x2fc], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a0d0
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c8adc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x45a490
jmp 0x45a0d0
cmp ax, word [edi]
je 0x45a4fd
xor edx, edx
cmp dx, ax
jne 0x45a4c6
mov dword [ebp - 0x31c], edx
jmp 0x45a4d8
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x31c], eax
movzx eax, word [edi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x45a4e8
xor eax, eax
jmp 0x45a4f4
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a508
add esi, 2
add edi, 2
jmp 0x45a410
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8ae0
je 0x45a537
test esi, esi
je 0x45a62b
mov edi, 0x4c8ae0
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a5d2
cmp word [edi], ax
jne 0x45a5d7
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a54a
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bf9f0], ax
je 0x45a56c
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bf9f0], 0
jne 0x45a560
mov dword [ebp - 0x2fc], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a0d0
nop dword [eax]
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4bf9f0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x45a5b0
jmp 0x45a0d0
cmp ax, word [edi]
je 0x45a61d
xor edx, edx
cmp dx, ax
jne 0x45a5e6
mov dword [ebp - 0x31c], edx
jmp 0x45a5f8
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x31c], eax
movzx eax, word [edi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x45a608
xor eax, eax
jmp 0x45a614
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a628
add esi, 2
add edi, 2
jmp 0x45a520
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8af8
je 0x45a657
test esi, esi
je 0x45a74b
mov edi, 0x4c8af8
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a6f2
cmp word [edi], ax
jne 0x45a6f7
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a66a
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bf950], ax
je 0x45a68c
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bf950], 0
jne 0x45a680
mov dword [ebp - 0x2fc], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a0d0
nop dword [eax]
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4bf950]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x45a6d0
jmp 0x45a0d0
cmp ax, word [edi]
je 0x45a73d
xor edx, edx
cmp dx, ax
jne 0x45a706
mov dword [ebp - 0x31c], edx
jmp 0x45a718
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x31c], eax
movzx eax, word [edi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x45a728
xor eax, eax
jmp 0x45a734
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a748
add esi, 2
add edi, 2
jmp 0x45a640
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8b24
je 0x45a777
test esi, esi
je 0x45a86b
mov edi, 0x4c8b24
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a812
cmp word [edi], ax
jne 0x45a817
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a78a
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bf9a0], ax
je 0x45a7ac
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bf9a0], 0
jne 0x45a7a0
mov dword [ebp - 0x2fc], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a0d0
nop dword [eax]
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4bf9a0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x45a7f0
jmp 0x45a0d0
cmp ax, word [edi]
je 0x45a85d
xor edx, edx
cmp dx, ax
jne 0x45a826
mov dword [ebp - 0x31c], edx
jmp 0x45a838
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x31c], eax
movzx eax, word [edi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x45a848
xor eax, eax
jmp 0x45a854
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a868
add esi, 2
add edi, 2
jmp 0x45a760
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8b58
je 0x45a897
test esi, esi
je 0x45a0dd
mov edi, 0x4c8b58
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a932
cmp word [edi], ax
jne 0x45a937
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a8aa
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bfae0], ax
je 0x45a8cc
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bfae0], 0
jne 0x45a8c0
mov dword [ebp - 0x2fc], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a0d0
nop dword [eax]
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4bfae0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x45a910
jmp 0x45a0d0
cmp ax, word [edi]
je 0x45a981
xor edx, edx
cmp dx, ax
jne 0x45a946
mov dword [ebp - 0x31c], edx
jmp 0x45a958
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x31c], eax
movzx eax, word [edi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x45a968
xor eax, eax
jmp 0x45a974
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a0dd
add esi, 2
add edi, 2
jmp 0x45a880
test eax, eax
je 0x45a999
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x2f4], esi
mov dword [ebp - 0x2f0], 0
push dword [ebp - 0x39c]
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 0x2ec], 1
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x2dc]
test esi, esi
jne 0x45aa31
test eax, eax
je 0x45a9da
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x2d4], 0
mov dword [ebp - 0x2d8], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2d8]
xor ecx, ecx
mov dword [ebp - 0x2dc], edx
test eax, eax
jle 0x45aa29
nop dword [eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2d8]
mov edx, dword [ebp - 0x2dc]
cmp ecx, eax
jl 0x45aa10
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45aa4e
test eax, eax
je 0x45aa3e
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x2dc], esi
mov dword [ebp - 0x2d8], 0
push 4
push dword [ebp - 0x38c]
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 0x2d4], 1
call fcn.00415560
movzx ecx, byte [ebp - 0x2ce]
test eax, eax
mov esi, 1
cmovne ecx, esi
push 4
push dword [ebp - 0x354]
mov byte [ebp - 0x2ce], cl
lea ecx, [ebp - 0x2c0]
call fcn.00415560
test eax, eax
je 0x45ab65
push dword [ebp - 0x350]
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov edi, eax
mov eax, dword [ebp - 0x2e8]
test edi, edi
jne 0x45ab1b
test eax, eax
je 0x45aac4
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x2e0], 0
mov dword [ebp - 0x2e4], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2e4]
xor ecx, ecx
mov dword [ebp - 0x2e8], edx
test eax, eax
jle 0x45ab0c
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2e4]
mov edx, dword [ebp - 0x2e8]
cmp ecx, eax
jl 0x45aaf3
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x2e0], 1
jmp 0x45ab65
test eax, eax
je 0x45ab28
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x2e8], edi
mov dword [ebp - 0x2e4], 0
mov byte [ebp - 0x2e0], 1
jmp 0x45ab65
push 4
push dword [ebp - 0x358]
call fcn.00415560
movzx ecx, byte [ebp - 0x2cf]
test eax, eax
mov esi, 1
cmovne ecx, esi
mov byte [ebp - 0x2cf], cl
push 4
push dword [ebp - 0x324]
lea ecx, [ebp - 0x2c0]
call fcn.00415560
movzx ecx, byte [ebp - 0x2d0]
test eax, eax
cmovne ecx, esi
mov byte [ebp - 0x2d0], cl
lea ecx, [ebp - 0x2c0]
call fcn.0040c540
mov esi, dword [ebp - 0x28]
test esi, esi
jne 0x45abb4
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
push dword [ebp - 0x314]
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00401e50
mov dword [ebp - 0x358], eax
mov ecx, dword [eax]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [ebp - 0x348], ecx
xor ecx, ecx
mov byte [eax + 8], 0
mov dword [eax + 4], ecx
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8b80], cx
jne 0x45abf0
add ecx, eax
test esi, esi
je 0x45ac12
xor eax, eax
cmp word [esi], ax
je 0x45ac10
inc eax
cmp word [esi + eax*2], 0
jne 0x45ac08
add ecx, eax
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c439c], 0
jne 0x45ac14
add ecx, eax
mov edx, 2
mov dword [ebp - 0x35c], ecx
lea eax, [ecx + 1]
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [ebp - 0x358]
mov edx, eax
add esp, 4
mov dword [ebp - 0x31c], edx
mov eax, dword [ecx]
mov dword [ebp - 0x384], eax
test eax, eax
je 0x45ac81
movzx ecx, word [eax]
test cx, cx
je 0x45ac81
mov edi, eax
sub edi, edx
nop word [eax + eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x45ac70
mov edi, 0x4c8b80
mov ecx, 0x50
sub edi, edx
nop dword [eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x45ac90
mov ecx, dword [ebp - 0x358]
mov edi, 0x4c439c
test esi, esi
je 0x45ace1
movzx eax, word [esi]
mov ecx, eax
mov dword [ebp - 0x384], ecx
mov ecx, dword [ebp - 0x358]
test ax, ax
je 0x45ace1
movzx eax, ax
nop dword [eax]
mov word [edx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add edx, 2
test ax, ax
jne 0x45acd0
mov eax, 0x2e
mov word [edx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
lea edx, [edx + 2]
test ax, ax
jne 0x45ace6
xor eax, eax
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x45ad11
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x358]
add esp, 4
mov eax, dword [ebp - 0x31c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x35c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x348]
mov byte [ecx + 8], 1
test eax, eax
je 0x45ad39
push eax
call fcn.00489c73
add esp, 4
mov edx, dword [ebp - 0x28]
test edx, edx
jne 0x45ad58
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
mov edi, dword [ebp - 0x33c]
sub esp, 8
mov byte [ebp - 0x20], 1
push 0
push 0xffffffffffffffb0
sub esp, 0x10
lea eax, [edi + 0x2a8]
lea ecx, [edi + 0x5b0]
push eax
push edx
call fcn.004192c0
mov ecx, eax
call fcn.0041a070
mov ecx, eax
call fcn.0041a580
push 0
push 0
lea eax, [ebp - 0x318]
push eax
push 0x46fae0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
or eax, 0xffffffff
test esi, esi
cmove esi, eax
mov dword [ebp - 0x31c], esi
mov dword [ebp - 0x2c4], esi
mov byte [ebp - 4], 0xb
test esi, esi
je 0x45ae11
cmp esi, eax
je 0x45ae11
nop dword [eax]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x45ae11
push 0
mov ecx, edi
call fcn.004284d0
cmp dword [edi], 0
jne 0x45add0
cmp dword [edi + 0x22c], 0xfffffffa
jne 0x45add0
push 0x4c2750
push 0xffffffffffffffb0
lea ecx, [edi + 0x5b0]
mov dword [edi], 1
call fcn.0041a070
jmp 0x45add0
mov eax, dword [edi + 0x510]
cmp eax, 0xffffffff
je 0x45ae3b
test eax, eax
je 0x45ae3b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x510], 0xffffffff
mov dword [edi + 0x514], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
sub esp, 8
lea ecx, [edi + 0x130]
call fcn.0041b0e0
sub esp, 8
lea ecx, [edi + 0x168]
call fcn.0041b0e0
sub esp, 8
lea ecx, [edi + 0x1a0]
call fcn.0041b0e0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x45ae87
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
test eax, eax
jne 0x45af02
mov byte [ebp - 0x20], al
inc eax
cmp word [eax*2 + 0x4c8bd8], 0
jne 0x45aea3
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45aef7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c8bd8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45aee0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45be90
cmp eax, 0xfffffffd
jne 0x45af72
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8c40], 0
jne 0x45af10
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45aef7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c8c40]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45af50
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45be90
cmp eax, 0xfffffffc
jne 0x45afe2
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8cb8], 0
jne 0x45af80
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45aef7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8cb8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45afc0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45be90
cmp dword [edi], 0
je 0x45b052
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8d48], 0
jne 0x45aff0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45aef7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8d48]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b030
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45be90
cmp eax, 1
jne 0x45b0bc
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc498], 0
jne 0x45b060
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b4a7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc498]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b0a0
jmp 0x45b4a7
cmp eax, 2
jne 0x45b12c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc4cc], 0
jne 0x45b0d0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b4a7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc4cc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b110
jmp 0x45b4a7
cmp eax, 3
jne 0x45b19c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc4f4], 0
jne 0x45b140
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b4a7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc4f4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b180
jmp 0x45b4a7
cmp eax, 4
jne 0x45b20c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc520], 0
jne 0x45b1b0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b4a7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc520]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b1f0
jmp 0x45b4a7
cmp eax, 5
jne 0x45b27c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc544], 0
jne 0x45b220
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b4a7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc544]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b260
jmp 0x45b4a7
cmp eax, 6
jne 0x45b2ec
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc56c], 0
jne 0x45b290
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b4a7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc56c]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b2d0
jmp 0x45b4a7
cmp eax, 0x1001
jne 0x45b35c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc598], 0
jne 0x45b300
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b4a7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc598]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b340
jmp 0x45b4a7
cmp eax, 0x9c41
jne 0x45b3cc
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc5c0], 0
jne 0x45b370
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b4a7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc5c0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b3b0
jmp 0x45b4a7
cmp eax, 0x9c42
jne 0x45b439
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc5e0], 0
jne 0x45b3e0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b4a7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc5e0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b420
jmp 0x45b4a7
cmp eax, 0x9c44
jne 0x45b4d4
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc658], 0
jne 0x45b450
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b4a7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cc658]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b490
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x20], 1
cmp dword [ebp - 0x28], ecx
jne 0x45bd8d
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x24], ecx
jmp 0x45bd8d
cmp eax, 0xffffffff
jne 0x45b53c
mov byte [ebp - 0x20], 0
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x4c8d88], 0
jne 0x45b4e0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bd87
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8d88]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b520
jmp 0x45bd87
cmp eax, 0xfffffffe
jne 0x45b5ac
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c8dd8], 0
jne 0x45b550
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bd87
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8dd8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b590
jmp 0x45bd87
cmp eax, 0x9c40
jne 0x45b61c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8e20], 0
jne 0x45b5c0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bd87
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8e20]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b600
jmp 0x45bd87
cmp eax, 0x9c43
jne 0x45b68c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8e50], 0
jne 0x45b630
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bd87
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8e50]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b670
cmp eax, 0xa028
jne 0x45b6fc
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8e88], 0
jne 0x45b6a0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bd87
cmp eax, 0xa02a
jne 0x45b76c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c4618], 0
jne 0x45b710
cmp eax, 0xa02b
jne 0x45b7dc
xor ecx, ecx
mov word [edx + eax*2], cx
cmp dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 0
jne 0x45bdc0
cmp dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 1
jne 0x45beb3
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x20], 1
mov dword [ebp - 0x384], eax
test eax, eax
jne 0x45bee3
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x384]
mov dword [ebp - 0x24], ecx
push 0
push 0x4c2b50
push ecx
push dword [ebp - 0x28]
lea ecx, [edi + 0x5b0]
mov byte [ebp - 0x20], 1
push eax
push 0x64
call fcn.0041a070
mov ecx, eax
call fcn.00419f00
mov ecx, eax
call fcn.0041a380
push 0
mov ecx, edi
call fcn.004284d0
test eax, eax
je 0x45bf5a
nop
mov ecx, dword [edi + 0x22c]
cmp ecx, 0xfffffffa
je 0x45bf5a
lea eax, [edi + 0x628]
cmp dword [edi + 0x25c], eax
jne 0x45bf4d
cmp ecx, dword [edi + 0x5b8]
je 0x45bf5a
push 0
mov ecx, edi
call fcn.004284d0
test eax, eax
jne 0x45bf20
push dword [ebp - 0x3a4]
mov ecx, edi
call fcn.0042cd20
lea ecx, [edi + 0x5b0]
call fcn.00419810
mov edi, 1
cmp esi, 0xffffffff
je 0x45bf8f
test esi, esi
je 0x45bf8f
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2dc]
test eax, eax
je 0x45bfa6
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2e8]
test eax, eax
je 0x45bfbd
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2f4]
test eax, eax
je 0x45bfd4
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45bfeb
push eax
call fcn.00489c73
add esp, 4
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 0xc
call fcn.0040c540
mov eax, dword [ebp - 0x284]
test eax, eax
je 0x45c011
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1b0]
test eax, eax
je 0x45c028
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x58]
test ecx, ecx
je 0x45c059
test eax, eax
je 0x45c06a
push dword [ebp - 0x40]
lea eax, [ebp - 0x58]
push dword [ebp - 0x50]
push eax
call fcn.0040c930
call fcn.00403550
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x45c06a
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x45c07e
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x45c092
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
push eax
push 0
push 0x4c3bf0
mov ecx, esi
call fcn.00432b40
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00489c65
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret