Function at 0x456bb0
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 0x49ebc1
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 0x456c0c
mov eax, dword [ecx]
mov edx, dword [esi + 0x2e4]
test edx, edx
je 0x45bf49
cmp eax, 1
jl 0x45bf49
cmp eax, dword [ecx]
jg 0x45bf49
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x45bf49
cmp dword [edx + eax*8], 0xf
jne 0x45bf49
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 0x45bf49
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 0x456ca0
push ecx
push 0x1c2
push 0x96
push ecx
push 0
push 0x4c85d8
jmp 0x45bf62
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 0x456d50
test eax, eax
je 0x456d12
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x456d48
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 0x456d35
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x456d6d
test eax, eax
je 0x456d5d
push eax
call fcn.00489f13
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 0x456de6
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x456d9f
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov dword [ebp - 0x34], edx
test eax, eax
jle 0x456dd5
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 0x456dc2
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x338], eax
jmp 0x456e06
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x456dfc
push ecx
call fcn.00489f13
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 0x456e40
test ecx, ecx
je 0x456f6d
mov edi, 0x4bfc90
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x456ea5
cmp word [edi], ax
jne 0x456eaa
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x338], eax
cmp eax, 0x4c21e0
je 0x456e6b
test eax, eax
je 0x456f6d
mov edi, 0x4c21e0
movzx eax, word [eax]
mov ecx, eax
test ax, ax
jne 0x456f0b
cmp word [edi], ax
jne 0x456f10
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 0x456f95
push eax
mov ecx, edi
call fcn.00401860
jmp 0x456fb7
cmp ax, word [edi]
je 0x456efa
xor ecx, ecx
cmp cx, ax
jne 0x456eb9
mov dword [ebp - 0x324], ecx
jmp 0x456ecb
push edx
call fcn.0048e184
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 0x456edb
xor eax, eax
jmp 0x456ee7
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x324], ax
jne 0x456f6d
mov ecx, dword [ebp - 0x350]
add ecx, 2
add edi, 2
mov dword [ebp - 0x350], ecx
jmp 0x456e28
cmp ax, word [edi]
je 0x456f56
xor edx, edx
cmp dx, ax
jne 0x456f1f
mov dword [ebp - 0x324], edx
jmp 0x456f31
push ecx
call fcn.0048e184
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 0x456f41
xor eax, eax
jmp 0x456f4d
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x324], ax
jne 0x456f6d
mov eax, dword [ebp - 0x338]
add eax, 2
add edi, 2
mov dword [ebp - 0x338], eax
jmp 0x456e54
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
mov ecx, esi
push eax
push 0
push 0x4c85d8
call fcn.00432ac0
or edi, 0xffffffff
jmp 0x45bf1a
mov eax, dword [edi]
test eax, eax
je 0x456fa4
push eax
call fcn.00489f13
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 0x456fe6
test eax, eax
jne 0x456fe6
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 0x457013
push eax
mov ecx, edi
call fcn.00401860
jmp 0x457035
mov eax, dword [edi]
test eax, eax
je 0x457022
push eax
call fcn.00489f13
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 0x457181
test eax, eax
je 0x457139
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x457173
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 0x457160
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
jmp 0x457196
test eax, eax
je 0x45718e
push eax
call fcn.00489f13
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 0x4571cb
test eax, eax
jne 0x4571b4
cmp word [edi], ax
je 0x4571af
inc eax
cmp word [edi + eax*2], 0
jne 0x4571a7
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x4571cb
push edi
mov byte [ebp - 0x20], 1
call fcn.0048e09c
add esp, 4
mov dword [ebp - 0x328], eax
jmp 0x4571d9
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 0x45720e
push ecx
push 0x1c2
push 0x96
push edx
push eax
push 0x4c8698
mov ecx, esi
call fcn.00432ac0
or edi, 0xffffffff
jmp 0x45bf1a
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 0x457269
mov edi, dword [esi + 0x4d8]
jmp 0x45726b
xor edi, edi
push 0x268
lea eax, [ebp - 0x2c0]
push 0
push eax
call fcn.0048ba10
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 0x4c871c
cmovne eax, esi
lea ecx, [ebp - 0x2c0]
push 0x4c3d00
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 0x4573a4
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 0x457388
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x457388
mov eax, dword [ebp - 0x324]
inc edi
add eax, 4
mov dword [ebp - 0x324], eax
cmp edi, 0x30
jl 0x457360
jmp 0x4573a4
mov eax, dword [ebp - 0x31c]
mov dword [esi + edi*4 + 0x2f8], eax
inc edi
cmp edi, dword [esi + 0x2f4]
jle 0x4573a4
mov dword [esi + 0x2f4], edi
movsd xmm0, qword [0x4cc778]
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 0x4573e2
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x142]
push 0x20
push eax
call fcn.0048d1b3
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 0x45748b
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 0x4c8744
push 0x4c018c
push 0
call edi
test eax, eax
je 0x45748b
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 [0x4cc768]
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 0x4574c0
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x142]
push 0x20
push eax
call fcn.0048d1b3
add esp, 0x10
mov dword [ebp - 0xd0], 0x400
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x457560
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 0x457560
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 0x4575ab
mov dword [ebp - 0x36c], eax
jmp 0x4575e2
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 0x45764b
push 2
call fcn.0048a2cb
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 0x45767a
mov dword [ebp - 0x374], 0
jmp 0x4576f5
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 0x4576cc
mov dword [ebp - 0x374], eax
jmp 0x4576f5
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 0x45779b
mov ecx, dword [eax]
test ecx, ecx
je 0x457798
cmp word [ecx], di
je 0x457798
nop dword [eax]
inc edi
cmp word [ecx + edi*2], 0
jne 0x457790
mov dword [eax + 4], edi
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x4577a0
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.0048a2cb
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 0x457801
movzx ecx, word [eax]
test cx, cx
je 0x457801
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 0x4577f0
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 0x457810
mov ecx, dword [ebp - 0x354]
xor eax, eax
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x457841
push eax
call fcn.00489f13
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 0x45786e
push 2
call fcn.0048a2cb
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 0x457895
mov edi, dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [ebp - 0x394], 0
jmp 0x45790b
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 0x4578e2
mov dword [ebp - 0x394], eax
jmp 0x45790b
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 0x45797d
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 0x4c8770
push 0x4c018c
push 0
call edi
test eax, eax
je 0x45797d
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 0x457a35
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 0x457ac7
cmp edi, 1
jl 0x457a96
cmp edi, dword [ebp - 0x280]
jg 0x457a96
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x457a96
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 0x457a96
mov edx, dword [ebp - 0x280]
jmp 0x457ab1
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 0x4579d0
mov eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov dword [ebp - 0x338], edi
jmp 0x457a07
test ecx, ecx
je 0x457ac7
cmp edi, 1
jl 0x457ac7
cmp edi, dword [ebp - 0x280]
jg 0x457ac7
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x457ac7
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 0x457b0b
push 2
call fcn.0048a2cb
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 0x457b35
mov dword [ebp - 0x340], 0
jmp 0x457bc5
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 0x457b96
mov dword [ebp - 0x340], eax
jmp 0x457bc5
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 0x457c2c
mov edx, dword [ecx]
test edx, edx
je 0x457c29
cmp word [edx], ax
je 0x457c29
inc eax
cmp word [edx + eax*2], 0
jne 0x457c21
mov dword [ecx + 4], eax
xor ecx, ecx
nop
inc ecx
cmp word [ecx*2 + 0x4bffa0], 0
jne 0x457c30
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.0048a2cb
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 0x457cd7
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 0x457cd1
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 [edx + ecx]
mov esi, eax
test ax, ax
jne 0x457cc0
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 0x457ce3
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 0x457d1a
push eax
call fcn.00489f13
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 0x457d4d
push 2
call fcn.0048a2cb
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 0x457d74
mov dword [ebp - 0x338], 0
jmp 0x457ded
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 0x457dc4
mov dword [ebp - 0x338], eax
jmp 0x457ded
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 0x457e66
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 0x4c8788
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x457e66
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 0x457eed
test eax, eax
je 0x457e7f
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c87a8], 0
jne 0x457e90
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x457f67
mov dword [ebp - 0x320], edi
mov ax, word [ecx*2 + 0x4c87a8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x457ed1
jmp 0x457f67
test eax, eax
je 0x457efa
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
mov dword [ebp - 0x324], edi
cmp word [eax*2 + 0x4c8800], 0
jne 0x457f00
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.0048a2cb
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 0x457f67
mov dword [ebp - 0x320], edi
nop dword [eax]
mov ax, word [ecx*2 + 0x4c8800]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x457f50
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x20], 1
test eax, eax
jne 0x457f90
push 2
call fcn.0048a2cb
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 0x45804b
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45804b
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 0x4c8898
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x45804b
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 0x458055
mov dword [ebp - 0x390], 0
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x458065
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x2c], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4c88e8], 0
jne 0x458070
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.0048a2cb
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 0x4580ca
mov dword [ebp - 0x320], edi
mov ax, word [ecx*2 + 0x4c88e8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
cmp ecx, eax
jl 0x4580b3
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x34]
mov byte [ebp - 0x2c], 1
test eax, eax
jne 0x4580f3
push 2
call fcn.0048a2cb
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 0x4581a3
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 0x4c891c
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x4581a3
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 0x4581c1
mov dword [ebp - 0x39c], 0
jmp 0x458250
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 0x458221
mov dword [ebp - 0x39c], eax
jmp 0x458250
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 0x4582f0
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4582f0
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 0x4c8930
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x4582f0
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 0x4582fa
mov dword [ebp - 0x354], 0
push 0x40
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
call fcn.00414360
lea ecx, [ebp - 0x34]
call fcn.0041e2a0
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x458330
push 2
call fcn.0048a2cb
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 0x4583f5
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4583f5
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 0x4c8974
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x4583f5
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 0x4583ff
mov dword [ebp - 0x38c], 0
push 0x40
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
call fcn.00414360
cmp dword [ebp - 0x90], 0
je 0x45849f
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45849f
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 0x4c8990
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x45849f
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 0x4584a9
mov dword [ebp - 0x358], 0
cmp dword [ebp - 0x90], 0
je 0x458537
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x458537
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 0x4c89c0
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x458537
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 0x458539
xor eax, eax
cmp dword [ebp - 0x328], 2
mov dword [ebp - 0x324], eax
jne 0x458556
push 0x40
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00414360
cmp dword [ebp - 0x90], 0
je 0x4585e7
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4585e7
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 0x4585e7
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 0x4585f1
mov dword [ebp - 0x398], 0
sub esp, 8
lea ecx, [ebp - 0x2c0]
push 0x4c4260
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0x90], 0
je 0x458697
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x458697
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 0x4c89ec
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x458697
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 0x4586a1
mov dword [ebp - 0x3a0], 0
sub esp, 8
lea ecx, [ebp - 0x2c0]
push 0x4c8a04
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 0x4586db
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.00428440
test eax, eax
je 0x459bbe
mov edx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
nop dword [eax + eax]
mov eax, dword [esi + 0x22c]
cmp eax, 0xfffffffa
je 0x459cb7
lea ecx, [ebp - 0x2c0]
cmp dword [esi + 0x25c], ecx
jne 0x459ba4
cmp eax, dword [ebp - 0x398]
je 0x459cb7
cmp eax, dword [ebp - 0x36c]
jne 0x458c57
mov eax, dword [ebp - 0x36c]
mov edx, eax
mov ecx, dword [ebp - 0x284]
cmp eax, 0xffffffff
jne 0x458774
mov edx, dword [ebp - 0x280]
jmp 0x45878f
test ecx, ecx
je 0x4587a7
cmp eax, 1
jl 0x4587a7
cmp eax, dword [ebp - 0x280]
jg 0x4587a7
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x4587a7
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 0x4587a9
xor eax, eax
push dword [ebp - 0x370]
cdq
push dword [ebp - 0x37c]
push edx
push eax
call fcn.0049aa50
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 0x458811
push 2
call fcn.0048a2cb
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 0x4588bb
test eax, eax
je 0x458875
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4588b3
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 0x4588a0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x4588d2
test eax, eax
je 0x4588c8
push eax
call fcn.00489f13
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 0x45891b
mov ecx, dword [ebp - 0x328]
ja 0x45890b
cmp esi, ecx
jbe 0x45891b
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 0x458955
push 2
call fcn.0048a2cb
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 0x4589cc
mov ecx, dword [eax]
test ecx, ecx
je 0x4589c9
cmp word [ecx], si
je 0x4589c9
inc esi
cmp word [ecx + esi*2], 0
jne 0x4589c1
mov dword [eax + 4], esi
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x4589d0
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.0048a2cb
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 0x458a57
movzx ecx, word [ecx]
mov dword [ebp - 0x330], edi
mov eax, ecx
test cx, cx
je 0x458a57
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 0x458a40
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 0x458a63
mov edi, dword [ebp - 0x32c]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x458a8e
push eax
call fcn.00489f13
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 0x458ab5
push 2
call fcn.0048a2cb
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 0x458b0e
mov eax, dword [edi]
test eax, eax
je 0x458b0b
cmp word [eax], si
je 0x458b0b
inc esi
cmp word [eax + esi*2], 0
jne 0x458b03
mov dword [edi + 4], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x458b10
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.0048a2cb
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 0x458ba7
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 0x458ba7
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 0x458b90
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 0x458bb3
mov edi, dword [ebp - 0x334]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x458bde
push eax
call fcn.00489f13
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 0x458c05
push 2
call fcn.0048a2cb
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.0049ad20
divsd xmm0, qword [esi + 0x10]
mov edi, dword [ebp - 0x320]
movsd qword [esi + 8], xmm0
mov esi, dword [ebp - 0x33c]
jmp 0x459ba4
cmp eax, 0xffffffb4
jne 0x4591b6
mov eax, dword [ebp - 0x374]
cmp dword [esi + 0x238], eax
jne 0x4591b6
movsd xmm0, qword [esi + 0x5a0]
lea ecx, [esi + 0x598]
ucomisd xmm0, xmm1
movsd qword [ebp - 0x360], xmm0
lahf
test ah, 0x44
jnp 0x4591b6
push ecx
call edx
mov edx, dword [esi + 0x59c]
mov ecx, dword [esi + 0x598]
call fcn.0049ad20
divsd xmm0, qword [esi + 0x5a8]
subsd xmm0, qword [ebp - 0x360]
comisd xmm0, xmmword [0x4cc7a8]
jbe 0x4591ad
push dword [ebp - 0x374]
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x458d2d
test eax, eax
je 0x458cef
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x458d25
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 0x458d12
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x458d44
test eax, eax
je 0x458d3a
push eax
call fcn.00489f13
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 0x458dfb
test eax, eax
je 0x458db9
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x458df3
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 0x458de0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x458e18
test eax, eax
je 0x458e08
push eax
call fcn.00489f13
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 0x458ee2
ja 0x458e77
cmp ecx, edx
jbe 0x458ee2
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 0x458ec3
push 2
call fcn.0048a2cb
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 0x458f1b
mov ecx, dword [eax]
test ecx, ecx
je 0x458f18
cmp word [ecx], si
je 0x458f18
nop dword [eax + eax]
inc esi
cmp word [ecx + esi*2], 0
jne 0x458f10
mov dword [eax + 4], esi
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x458f20
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.0048a2cb
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 0x458fa7
movzx ecx, word [ecx]
mov dword [ebp - 0x330], edi
mov eax, ecx
test cx, cx
je 0x458fa7
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 0x458f90
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 0x458fb3
mov edi, dword [ebp - 0x334]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x458fde
push eax
call fcn.00489f13
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 0x459005
push 2
call fcn.0048a2cb
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 0x45905e
mov eax, dword [edi]
test eax, eax
je 0x45905b
cmp word [eax], si
je 0x45905b
inc esi
cmp word [eax + esi*2], 0
jne 0x459053
mov dword [edi + 4], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x459060
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.0048a2cb
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 0x4590f1
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 0x4590f1
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 0x4590e0
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 0x459100
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 0x459137
push eax
call fcn.00489f13
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 0x459164
push 2
call fcn.0048a2cb
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 0x459ba4
mov edx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
mov eax, dword [esi + 0x22c]
cmp eax, edi
jne 0x459540
mov eax, dword [ebp - 0x36c]
mov esi, eax
mov ecx, dword [ebp - 0x284]
cmp eax, 0xffffffff
jne 0x4591df
mov esi, dword [ebp - 0x280]
jmp 0x4591fc
mov edx, dword [ebp - 0x280]
test ecx, ecx
je 0x459226
cmp eax, 1
jl 0x459226
cmp eax, edx
jg 0x459226
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x459226
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 0x459230
mov dword [ebp - 0x2c4], 0
mov esi, edi
cmp edi, 0xffffffff
jne 0x45923b
mov esi, edx
jmp 0x459252
test ecx, ecx
je 0x45926c
cmp edi, 1
jl 0x45926c
cmp edi, edx
jg 0x45926c
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x45926c
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 0x45926e
xor edi, edi
push dword [ebp - 0x370]
mov eax, dword [ebp - 0x2c4]
push dword [ebp - 0x37c]
cdq
push edx
push eax
call fcn.0049aa50
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.0049aa50
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 0x459387
push 2
call fcn.0048a2cb
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 0x4593db
mov ecx, dword [eax]
test ecx, ecx
je 0x4593d8
cmp word [ecx], si
je 0x4593d8
nop
inc esi
cmp word [ecx + esi*2], 0
jne 0x4593d0
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 0x4593f0
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.0048a2cb
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 0x459481
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 0x459481
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 0x459470
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 0x459490
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 0x4594c7
push eax
call fcn.00489f13
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 0x4594f4
push 2
call fcn.0048a2cb
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.0049ad20
divsd xmm0, qword [esi + 0x10]
movsd qword [esi + 8], xmm0
mov esi, dword [ebp - 0x33c]
jmp 0x459ba4
cmp eax, 0xffffffb4
jne 0x4598df
mov eax, dword [ebp - 0x340]
cmp dword [esi + 0x238], eax
jne 0x4598df
movsd xmm0, qword [esi + 0x5a0]
lea ecx, [esi + 0x598]
ucomisd xmm0, xmm1
movsd qword [ebp - 0x360], xmm0
lahf
test ah, 0x44
jnp 0x4598df
push ecx
call edx
mov edx, dword [esi + 0x59c]
mov ecx, dword [esi + 0x598]
call fcn.0049ad20
divsd xmm0, qword [esi + 0x5a8]
subsd xmm0, qword [ebp - 0x360]
comisd xmm0, xmmword [0x4cc7a8]
jbe 0x4598df
mov eax, dword [ebp - 0x36c]
mov edx, eax
mov ecx, dword [ebp - 0x284]
cmp eax, 0xffffffff
jne 0x4595cc
mov edx, dword [ebp - 0x280]
jmp 0x4595e7
test ecx, ecx
je 0x4595ff
cmp eax, 1
jl 0x4595ff
cmp eax, dword [ebp - 0x280]
jg 0x4595ff
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x4595ff
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 0x459601
xor eax, eax
push dword [ebp - 0x370]
cdq
push dword [ebp - 0x37c]
push edx
push eax
call fcn.0049aa50
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 0x45969b
test eax, eax
je 0x459658
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459693
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 0x459680
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x4596b2
test eax, eax
je 0x4596a8
push eax
call fcn.00489f13
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 0x45974c
ja 0x4596e7
cmp eax, dword [ebp - 0x334]
jbe 0x45974c
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 0x459727
push 2
call fcn.0048a2cb
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 0x459780
mov ecx, dword [eax]
test ecx, ecx
je 0x45977d
cmp word [ecx], si
je 0x45977d
inc esi
cmp word [ecx + esi*2], 0
jne 0x459775
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 0x459790
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.0048a2cb
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 0x459821
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 0x459821
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 [edx + edi]
mov ecx, eax
test ax, ax
jne 0x459810
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 0x459830
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 0x459867
push eax
call fcn.00489f13
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 0x459894
push 2
call fcn.0048a2cb
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 0x459ba4
mov eax, dword [esi + 0x22c]
mov ecx, dword [ebp - 0x390]
cmp eax, ecx
jne 0x459997
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 0x459ba4
cmp eax, 0xffffffbf
jne 0x459ae8
mov ecx, dword [ebp - 0x380]
cmp dword [esi + 0x238], ecx
jne 0x459ae8
push ecx
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov edi, eax
mov eax, dword [ebp - 0x28]
test edi, edi
jne 0x459a15
test eax, eax
je 0x4599d4
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459a0a
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 0x4599f7
xor ecx, ecx
mov word [edx + eax*2], cx
mov edi, dword [ebp - 0x28]
jmp 0x459a2c
test eax, eax
je 0x459a22
push eax
call fcn.00489f13
add esp, 4
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
cmp edi, 0x4c80b4
jne 0x459a3f
mov cl, 1
jmp 0x459abc
test edi, edi
je 0x459aba
mov esi, 0x4c80b4
movzx eax, word [edi]
mov ecx, eax
test ax, ax
jne 0x459a61
cmp word [esi], ax
jne 0x459a66
mov esi, dword [ebp - 0x33c]
mov cl, 1
jmp 0x459abc
cmp ax, word [esi]
je 0x459aac
xor edx, edx
cmp dx, ax
jne 0x459a75
mov dword [ebp - 0x31c], edx
jmp 0x459a87
push ecx
call fcn.0048e184
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 0x459a97
xor eax, eax
jmp 0x459aa3
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x459ab4
add edi, 2
add esi, 2
jmp 0x459a48
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 0x459ba4
mov ecx, dword [ebp - 0x354]
cmp eax, ecx
jne 0x459b4c
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 0x459ba4
cmp eax, dword [ebp - 0x3a0]
jne 0x459ba4
push 1
push 0
lea ecx, [ebp - 0x2c0]
call fcn.0040db40
push 1
mov ecx, esi
call fcn.00428440
test eax, eax
jne 0x459b63
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
mov ecx, esi
push eax
push 1
push 0x4c8a38
call fcn.00432ac0
cmp eax, 1
je 0x459bbe
push 1
push 5
lea ecx, [ebp - 0x2c0]
call fcn.0040db40
push 0
mov ecx, esi
call fcn.00428440
mov edx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
test eax, eax
jne 0x458720
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 0x459cbf
test eax, eax
je 0x459c73
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459ca9
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 0x459c96
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
jmp 0x459cd4
or edi, 0xffffffff
jmp 0x45be9b
test eax, eax
je 0x459ccc
push eax
call fcn.00489f13
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 0x459d03
test eax, eax
jne 0x459cf2
cmp word [esi], ax
je 0x459ced
inc eax
cmp word [esi + eax*2], 0
jne 0x459ce5
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x459d03
push esi
mov byte [ebp - 0x20], 1
call fcn.0048e09c
add esp, 4
jmp 0x459d09
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 0x459d7b
test eax, eax
je 0x459d36
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459d73
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 0x459d60
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x459d92
test eax, eax
je 0x459d88
push eax
call fcn.00489f13
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 0x459e1b
test eax, eax
je 0x459dd8
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459e13
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 0x459e00
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x459e32
test eax, eax
je 0x459e28
push eax
call fcn.00489f13
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 0x459ebe
test eax, eax
je 0x459e78
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459eb3
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 0x459ea0
xor ecx, ecx
mov word [edx + eax*2], cx
mov esi, dword [ebp - 0x28]
jmp 0x459ed5
test eax, eax
je 0x459ecb
push eax
call fcn.00489f13
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
cmp esi, 0x4c8a98
je 0x459f07
test esi, esi
je 0x45a082
mov edi, 0x4c8a98
nop
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a029
cmp word [edi], ax
jne 0x45a02e
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x459f1a
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8ac4], 0
jne 0x459f23
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x459f80
mov ax, word [ecx*2 + 0x4c8ac4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x459f63
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 0x45a9f1
push dword [ebp - 0x380]
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x2f4]
test esi, esi
jne 0x45a83c
test eax, eax
je 0x459fd6
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x2ec], 0
mov dword [ebp - 0x2f0], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2f0]
xor ecx, ecx
mov dword [ebp - 0x2f4], edx
test eax, eax
jle 0x45a01e
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 0x45a005
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45a859
cmp ax, word [edi]
je 0x45a074
xor edx, edx
cmp dx, ax
jne 0x45a03d
mov dword [ebp - 0x31c], edx
jmp 0x45a04f
push ecx
call fcn.0048e184
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 0x45a05f
xor eax, eax
jmp 0x45a06b
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a07f
add esi, 2
add edi, 2
jmp 0x459ef0
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c2ff8
je 0x45a0ae
test esi, esi
je 0x45a19b
mov edi, 0x4c2ff8
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a142
cmp word [edi], ax
jne 0x45a147
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a0c1
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c8ac8], 0
jne 0x45a0d0
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x459f80
nop dword [eax]
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8ac8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x45a120
jmp 0x459f80
cmp ax, word [edi]
je 0x45a18d
xor edx, edx
cmp dx, ax
jne 0x45a156
mov dword [ebp - 0x31c], edx
jmp 0x45a168
push ecx
call fcn.0048e184
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 0x45a178
xor eax, eax
jmp 0x45a184
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a198
add esi, 2
add edi, 2
jmp 0x45a097
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c7930
je 0x45a1c7
test esi, esi
je 0x45a2ab
mov edi, 0x4c7930
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a252
cmp word [edi], ax
jne 0x45a257
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a1da
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8ad0], 0
jne 0x45a1e3
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x459f80
nop word [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 0x45a230
jmp 0x459f80
cmp ax, word [edi]
je 0x45a29d
xor edx, edx
cmp dx, ax
jne 0x45a266
mov dword [ebp - 0x31c], edx
jmp 0x45a278
push ecx
call fcn.0048e184
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 0x45a288
xor eax, eax
jmp 0x45a294
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a2a8
add esi, 2
add edi, 2
jmp 0x45a1b0
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c009c
je 0x45a2d7
test esi, esi
je 0x45a3bb
mov edi, 0x4c009c
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a362
cmp word [edi], ax
jne 0x45a367
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a2ea
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8ad4], 0
jne 0x45a2f3
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x459f80
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c8ad4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x300]
cmp ecx, eax
jl 0x45a340
jmp 0x459f80
cmp ax, word [edi]
je 0x45a3ad
xor edx, edx
cmp dx, ax
jne 0x45a376
mov dword [ebp - 0x31c], edx
jmp 0x45a388
push ecx
call fcn.0048e184
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 0x45a398
xor eax, eax
jmp 0x45a3a4
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a3b8
add esi, 2
add edi, 2
jmp 0x45a2c0
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8ad8
je 0x45a3e7
test esi, esi
je 0x45a4db
mov edi, 0x4c8ad8
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a482
cmp word [edi], ax
jne 0x45a487
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a3fa
push eax
call fcn.00489f13
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bf9f0], ax
je 0x45a41c
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bf9f0], 0
jne 0x45a410
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x459f80
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 0x45a460
jmp 0x459f80
cmp ax, word [edi]
je 0x45a4cd
xor edx, edx
cmp dx, ax
jne 0x45a496
mov dword [ebp - 0x31c], edx
jmp 0x45a4a8
push ecx
call fcn.0048e184
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 0x45a4b8
xor eax, eax
jmp 0x45a4c4
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a4d8
add esi, 2
add edi, 2
jmp 0x45a3d0
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8af0
je 0x45a507
test esi, esi
je 0x45a5fb
mov edi, 0x4c8af0
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a5a2
cmp word [edi], ax
jne 0x45a5a7
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a51a
push eax
call fcn.00489f13
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bf950], ax
je 0x45a53c
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bf950], 0
jne 0x45a530
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x459f80
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 0x45a580
jmp 0x459f80
cmp ax, word [edi]
je 0x45a5ed
xor edx, edx
cmp dx, ax
jne 0x45a5b6
mov dword [ebp - 0x31c], edx
jmp 0x45a5c8
push ecx
call fcn.0048e184
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 0x45a5d8
xor eax, eax
jmp 0x45a5e4
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a5f8
add esi, 2
add edi, 2
jmp 0x45a4f0
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8b1c
je 0x45a627
test esi, esi
je 0x45a71b
mov edi, 0x4c8b1c
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a6c2
cmp word [edi], ax
jne 0x45a6c7
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a63a
push eax
call fcn.00489f13
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bf9a0], ax
je 0x45a65c
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bf9a0], 0
jne 0x45a650
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x459f80
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 0x45a6a0
jmp 0x459f80
cmp ax, word [edi]
je 0x45a70d
xor edx, edx
cmp dx, ax
jne 0x45a6d6
mov dword [ebp - 0x31c], edx
jmp 0x45a6e8
push ecx
call fcn.0048e184
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 0x45a6f8
xor eax, eax
jmp 0x45a704
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a718
add esi, 2
add edi, 2
jmp 0x45a610
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8b50
je 0x45a747
test esi, esi
je 0x459f8d
mov edi, 0x4c8b50
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a7e2
cmp word [edi], ax
jne 0x45a7e7
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a75a
push eax
call fcn.00489f13
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bfae0], ax
je 0x45a77c
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bfae0], 0
jne 0x45a770
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x459f80
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 0x45a7c0
jmp 0x459f80
cmp ax, word [edi]
je 0x45a831
xor edx, edx
cmp dx, ax
jne 0x45a7f6
mov dword [ebp - 0x31c], edx
jmp 0x45a808
push ecx
call fcn.0048e184
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 0x45a818
xor eax, eax
jmp 0x45a824
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x459f8d
add esi, 2
add edi, 2
jmp 0x45a730
test eax, eax
je 0x45a849
push eax
call fcn.00489f13
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 0x45a8e1
test eax, eax
je 0x45a88a
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x2d4], 0
mov dword [ebp - 0x2d8], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2d8]
xor ecx, ecx
mov dword [ebp - 0x2dc], edx
test eax, eax
jle 0x45a8d9
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 0x45a8c0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45a8fe
test eax, eax
je 0x45a8ee
push eax
call fcn.00489f13
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 0x45aa15
push dword [ebp - 0x350]
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov edi, eax
mov eax, dword [ebp - 0x2e8]
test edi, edi
jne 0x45a9cb
test eax, eax
je 0x45a974
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x2e0], 0
mov dword [ebp - 0x2e4], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2e4]
xor ecx, ecx
mov dword [ebp - 0x2e8], edx
test eax, eax
jle 0x45a9bc
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 0x45a9a3
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x2e0], 1
jmp 0x45aa15
test eax, eax
je 0x45a9d8
push eax
call fcn.00489f13
add esp, 4
mov dword [ebp - 0x2e8], edi
mov dword [ebp - 0x2e4], 0
mov byte [ebp - 0x2e0], 1
jmp 0x45aa15
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 0x45aa64
push 2
call fcn.0048a2cb
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 + 0x4c8b78], cx
jne 0x45aaa0
add ecx, eax
test esi, esi
je 0x45aac2
xor eax, eax
cmp word [esi], ax
je 0x45aac0
inc eax
cmp word [esi + eax*2], 0
jne 0x45aab8
add ecx, eax
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c43a4], 0
jne 0x45aac4
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.0048a2cb
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 0x45ab31
movzx ecx, word [eax]
test cx, cx
je 0x45ab31
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 0x45ab20
mov edi, 0x4c8b78
mov ecx, 0x50
sub edi, edx
nop dword [eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x45ab40
mov ecx, dword [ebp - 0x358]
mov edi, 0x4c43a4
test esi, esi
je 0x45ab91
movzx eax, word [esi]
mov ecx, eax
mov dword [ebp - 0x384], ecx
mov ecx, dword [ebp - 0x358]
test ax, ax
je 0x45ab91
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 0x45ab80
mov eax, 0x2e
mov word [edx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
lea edx, [edx + 2]
test ax, ax
jne 0x45ab96
xor eax, eax
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x45abc1
push eax
call fcn.00489f13
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 0x45abe9
push eax
call fcn.00489f13
add esp, 4
mov edx, dword [ebp - 0x28]
test edx, edx
jne 0x45ac08
push 2
call fcn.0048a2cb
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]
push 0
push 0xffffffffffffffb0
sub esp, 0x10
mov byte [ebp - 0x20], 1
lea eax, [edi + 0x2a8]
lea ecx, [edi + 0x5b0]
push eax
push edx
call fcn.004192c0
mov ecx, eax
call fcn.0041a070
push 1
push 5
lea ecx, [eax + 0x78]
call fcn.0040db40
push 0
push 0
lea eax, [ebp - 0x318]
push eax
push 0x46fd90
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 0x45acc1
cmp esi, eax
je 0x45acc1
nop dword [eax + eax]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x45acc1
push 0
mov ecx, edi
call fcn.00428440
cmp dword [edi], 0
jne 0x45ac80
cmp dword [edi + 0x22c], 0xfffffffa
jne 0x45ac80
push 0x4c2770
push 0xffffffffffffffb0
lea ecx, [edi + 0x5b0]
mov dword [edi], 1
call fcn.0041a070
jmp 0x45ac80
mov eax, dword [edi + 0x510]
cmp eax, 0xffffffff
je 0x45aceb
test eax, eax
je 0x45aceb
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.0041b050
sub esp, 8
lea ecx, [edi + 0x168]
call fcn.0041b050
sub esp, 8
lea ecx, [edi + 0x1a0]
call fcn.0041b050
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x45ad37
push eax
call fcn.00489f13
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 0x45adb2
mov byte [ebp - 0x20], al
inc eax
cmp word [eax*2 + 0x4c8bd0], 0
jne 0x45ad53
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ada7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c8bd0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45ad90
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45bd40
cmp eax, 0xfffffffd
jne 0x45ae22
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8c38], 0
jne 0x45adc0
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ada7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c8c38]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45ae00
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45bd40
cmp eax, 0xfffffffc
jne 0x45ae92
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8cb0], 0
jne 0x45ae30
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ada7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8cb0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45ae70
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45bd40
cmp dword [edi], 0
je 0x45af02
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8d40], 0
jne 0x45aea0
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ada7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8d40]
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 0x45bd40
cmp eax, 1
jne 0x45af6c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc490], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b357
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc490]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45af50
jmp 0x45b357
cmp eax, 2
jne 0x45afdc
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc4c4], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b357
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc4c4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45afc0
jmp 0x45b357
cmp eax, 3
jne 0x45b04c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc4ec], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b357
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc4ec]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b030
jmp 0x45b357
cmp eax, 4
jne 0x45b0bc
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc518], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b357
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc518]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b0a0
jmp 0x45b357
cmp eax, 5
jne 0x45b12c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc53c], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b357
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc53c]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b110
jmp 0x45b357
cmp eax, 6
jne 0x45b19c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc564], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b357
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc564]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b180
jmp 0x45b357
cmp eax, 0x1001
jne 0x45b20c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc590], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b357
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc590]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b1f0
jmp 0x45b357
cmp eax, 0x9c41
jne 0x45b27c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc5b8], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b357
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc5b8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b260
jmp 0x45b357
cmp eax, 0x9c42
jne 0x45b2e9
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc5d8], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b357
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc5d8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b2d0
jmp 0x45b357
cmp eax, 0x9c44
jne 0x45b384
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc650], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b357
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cc650]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b340
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x20], 1
cmp dword [ebp - 0x28], ecx
jne 0x45bc3d
push 2
call fcn.0048a2cb
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x24], ecx
jmp 0x45bc3d
cmp eax, 0xffffffff
jne 0x45b3ec
mov byte [ebp - 0x20], 0
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x4c8d80], 0
jne 0x45b390
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bc37
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8d80]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b3d0
jmp 0x45bc37
cmp eax, 0xfffffffe
jne 0x45b45c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c8dd0], 0
jne 0x45b400
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bc37
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8dd0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b440
jmp 0x45bc37
cmp eax, 0x9c40
jne 0x45b4cc
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8e18], 0
jne 0x45b470
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bc37
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8e18]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b4b0
jmp 0x45bc37
cmp eax, 0x9c43
jne 0x45b53c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8e48], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bc37
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8e48]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45b520
cmp eax, 0xa028
jne 0x45b5ac
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8e80], 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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bc37
cmp eax, 0xa02a
jne 0x45b61c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c4620], 0
jne 0x45b5c0
cmp eax, 0xa02b
jne 0x45b68c
xor ecx, ecx
mov word [edx + eax*2], cx
cmp dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 0
jne 0x45bc70
cmp dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 1
jne 0x45bd63
push 2
call fcn.0048a2cb
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 0x45bd93
push 2
call fcn.0048a2cb
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 0x4c2b70
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.00428440
test eax, eax
je 0x45be0a
nop
mov ecx, dword [edi + 0x22c]
cmp ecx, 0xfffffffa
je 0x45be0a
lea eax, [edi + 0x628]
cmp dword [edi + 0x25c], eax
jne 0x45bdfd
cmp ecx, dword [edi + 0x5b8]
je 0x45be0a
push 0
mov ecx, edi
call fcn.00428440
test eax, eax
jne 0x45bdd0
push dword [ebp - 0x3a4]
mov ecx, edi
call fcn.0042cca0
lea ecx, [edi + 0x5b0]
call fcn.00419810
mov edi, 1
cmp esi, 0xffffffff
je 0x45be3f
test esi, esi
je 0x45be3f
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2dc]
test eax, eax
je 0x45be56
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x2e8]
test eax, eax
je 0x45be6d
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x2f4]
test eax, eax
je 0x45be84
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45be9b
push eax
call fcn.00489f13
add esp, 4
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 0xc
call fcn.0040c540
mov eax, dword [ebp - 0x284]
test eax, eax
je 0x45bec1
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x1b0]
test eax, eax
je 0x45bed8
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x58]
test ecx, ecx
je 0x45bf09
test eax, eax
je 0x45bf1a
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 0x45bf1a
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x45bf2e
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x45bf42
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
push eax
push 0
push 0x4c3bf8
mov ecx, esi
call fcn.00432ac0
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.00489f05
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret