Function at 0x456f70
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 0x456fcc
mov eax, dword [ecx]
mov edx, dword [esi + 0x2e4]
test edx, edx
je 0x45c309
cmp eax, 1
jl 0x45c309
cmp eax, dword [ecx]
jg 0x45c309
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x45c309
cmp dword [edx + eax*8], 0xf
jne 0x45c309
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 0x45c309
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 0x457060
push ecx
push 0x1c2
push 0x96
push ecx
push 0
push 0x4c85d8
jmp 0x45c322
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 0x457110
test eax, eax
je 0x4570d2
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x457108
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 0x4570f5
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45712d
test eax, eax
je 0x45711d
push eax
call fcn.00489ed3
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 0x4571a6
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x45715f
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov dword [ebp - 0x34], edx
test eax, eax
jle 0x457195
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 0x457182
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x338], eax
jmp 0x4571c6
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x4571bc
push ecx
call fcn.00489ed3
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 0x457200
test ecx, ecx
je 0x45732d
mov edi, 0x4bfc90
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x457265
cmp word [edi], ax
jne 0x45726a
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x338], eax
cmp eax, 0x4c21c0
je 0x45722b
test eax, eax
je 0x45732d
mov edi, 0x4c21c0
movzx eax, word [eax]
mov ecx, eax
test ax, ax
jne 0x4572cb
cmp word [edi], ax
jne 0x4572d0
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 0x457355
push eax
mov ecx, edi
call fcn.00401860
jmp 0x457377
cmp ax, word [edi]
je 0x4572ba
xor ecx, ecx
cmp cx, ax
jne 0x457279
mov dword [ebp - 0x324], ecx
jmp 0x45728b
push edx
call fcn.0048e154
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 0x45729b
xor eax, eax
jmp 0x4572a7
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x324], ax
jne 0x45732d
mov ecx, dword [ebp - 0x350]
add ecx, 2
add edi, 2
mov dword [ebp - 0x350], ecx
jmp 0x4571e8
cmp ax, word [edi]
je 0x457316
xor edx, edx
cmp dx, ax
jne 0x4572df
mov dword [ebp - 0x324], edx
jmp 0x4572f1
push ecx
call fcn.0048e154
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 0x457301
xor eax, eax
jmp 0x45730d
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x324], ax
jne 0x45732d
mov eax, dword [ebp - 0x338]
add eax, 2
add edi, 2
mov dword [ebp - 0x338], eax
jmp 0x457214
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
mov ecx, esi
push eax
push 0
push 0x4c85d8
call fcn.00432b40
or edi, 0xffffffff
jmp 0x45c2da
mov eax, dword [edi]
test eax, eax
je 0x457364
push eax
call fcn.00489ed3
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 0x4573a6
test eax, eax
jne 0x4573a6
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 0x4573d3
push eax
mov ecx, edi
call fcn.00401860
jmp 0x4573f5
mov eax, dword [edi]
test eax, eax
je 0x4573e2
push eax
call fcn.00489ed3
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 0x457541
test eax, eax
je 0x4574f9
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x457533
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 0x457520
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
jmp 0x457556
test eax, eax
je 0x45754e
push eax
call fcn.00489ed3
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 0x45758b
test eax, eax
jne 0x457574
cmp word [edi], ax
je 0x45756f
inc eax
cmp word [edi + eax*2], 0
jne 0x457567
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x45758b
push edi
mov byte [ebp - 0x20], 1
call fcn.0048e06c
add esp, 4
mov dword [ebp - 0x328], eax
jmp 0x457599
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 0x4575ce
push ecx
push 0x1c2
push 0x96
push edx
push eax
push 0x4c8698
mov ecx, esi
call fcn.00432b40
or edi, 0xffffffff
jmp 0x45c2da
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 0x457629
mov edi, dword [esi + 0x4d8]
jmp 0x45762b
xor edi, edi
push 0x268
lea eax, [ebp - 0x2c0]
push 0
push eax
call fcn.0048b9e0
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 0x4c3cf8
mov dword [ebp - 0x100], eax
call fcn.0040bf80
push ecx
push 0xc
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff000000
push 0x145
push 0x23a
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 5
call fcn.004167f0
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x31c], eax
test edi, edi
je 0x457764
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 0x457748
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x457748
mov eax, dword [ebp - 0x324]
inc edi
add eax, 4
mov dword [ebp - 0x324], eax
cmp edi, 0x30
jl 0x457720
jmp 0x457764
mov eax, dword [ebp - 0x31c]
mov dword [esi + edi*4 + 0x2f8], eax
inc edi
cmp edi, dword [esi + 0x2f4]
jle 0x457764
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 0x4577a2
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x142]
push 0x20
push eax
call fcn.0048d183
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 0x45784b
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 0x45784b
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 0x457880
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x142]
push 0x20
push eax
call fcn.0048d183
add esp, 0x10
mov dword [ebp - 0xd0], 0x400
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x457920
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 0x457920
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 0x45796b
mov dword [ebp - 0x36c], eax
jmp 0x4579a2
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 0x457a0b
push 2
call fcn.0048a28e
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 0x457a3a
mov dword [ebp - 0x374], 0
jmp 0x457ab5
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 0x457a8c
mov dword [ebp - 0x374], eax
jmp 0x457ab5
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 0x457b5b
mov ecx, dword [eax]
test ecx, ecx
je 0x457b58
cmp word [ecx], di
je 0x457b58
nop dword [eax]
inc edi
cmp word [ecx + edi*2], 0
jne 0x457b50
mov dword [eax + 4], edi
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x457b60
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.0048a28e
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 0x457bc1
movzx ecx, word [eax]
test cx, cx
je 0x457bc1
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 0x457bb0
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 0x457bd0
mov ecx, dword [ebp - 0x354]
xor eax, eax
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x457c01
push eax
call fcn.00489ed3
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 0x457c2e
push 2
call fcn.0048a28e
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 0x457c55
mov edi, dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [ebp - 0x394], 0
jmp 0x457ccb
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 0x457ca2
mov dword [ebp - 0x394], eax
jmp 0x457ccb
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 0x457d3d
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 0x457d3d
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 0x457df5
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 0x457e87
cmp edi, 1
jl 0x457e56
cmp edi, dword [ebp - 0x280]
jg 0x457e56
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x457e56
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 0x457e56
mov edx, dword [ebp - 0x280]
jmp 0x457e71
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 0x457d90
mov eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
mov dword [ebp - 0x338], edi
jmp 0x457dc7
test ecx, ecx
je 0x457e87
cmp edi, 1
jl 0x457e87
cmp edi, dword [ebp - 0x280]
jg 0x457e87
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x457e87
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 0x457ecb
push 2
call fcn.0048a28e
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 0x457ef5
mov dword [ebp - 0x340], 0
jmp 0x457f85
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 0x457f56
mov dword [ebp - 0x340], eax
jmp 0x457f85
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 0x457fec
mov edx, dword [ecx]
test edx, edx
je 0x457fe9
cmp word [edx], ax
je 0x457fe9
inc eax
cmp word [edx + eax*2], 0
jne 0x457fe1
mov dword [ecx + 4], eax
xor ecx, ecx
nop
inc ecx
cmp word [ecx*2 + 0x4bffa0], 0
jne 0x457ff0
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.0048a28e
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 0x458097
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 0x458091
mov esi, dword [ebp - 0x2c4]
mov ecx, dword [ebp - 0x31c]
movzx edi, si
sub ecx, edx
mov dword [ebp - 0x31c], edi
mov esi, edi
mov dword [ebp - 0x320], eax
nop dword [eax]
mov word [edx], si
add edx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x458080
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 0x4580a3
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 0x4580da
push eax
call fcn.00489ed3
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 0x45810d
push 2
call fcn.0048a28e
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 0x458134
mov dword [ebp - 0x338], 0
jmp 0x4581ad
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 0x458184
mov dword [ebp - 0x338], eax
jmp 0x4581ad
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 0x458226
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 0x458226
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 0x4582ad
test eax, eax
je 0x45823f
push eax
call fcn.00489ed3
add esp, 4
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c87a8], 0
jne 0x458250
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x458327
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 0x458291
jmp 0x458327
test eax, eax
je 0x4582ba
push eax
call fcn.00489ed3
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 0x4582c0
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.0048a28e
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 0x458327
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 0x458310
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x20], 1
test eax, eax
jne 0x458350
push 2
call fcn.0048a28e
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 0x45840b
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45840b
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 0x45840b
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 0x458415
mov dword [ebp - 0x390], 0
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x458425
push eax
call fcn.00489ed3
add esp, 4
mov byte [ebp - 0x2c], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4c88e8], 0
jne 0x458430
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.0048a28e
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 0x45848a
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 0x458473
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x34]
mov byte [ebp - 0x2c], 1
test eax, eax
jne 0x4584b3
push 2
call fcn.0048a28e
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 0x458563
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 0x458563
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 0x458581
mov dword [ebp - 0x39c], 0
jmp 0x458610
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 0x4585e1
mov dword [ebp - 0x39c], eax
jmp 0x458610
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 0x4586b0
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4586b0
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 0x4586b0
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 0x4586ba
mov dword [ebp - 0x354], 0
push 0x40
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
call fcn.00414360
lea ecx, [ebp - 0x34]
call fcn.0041e330
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x4586f0
push 2
call fcn.0048a28e
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 0x4587b5
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4587b5
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 0x4587b5
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 0x4587bf
mov dword [ebp - 0x38c], 0
push 0x40
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
call fcn.00414360
cmp dword [ebp - 0x90], 0
je 0x45885f
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45885f
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 0x45885f
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 0x458869
mov dword [ebp - 0x358], 0
cmp dword [ebp - 0x90], 0
je 0x4588f7
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4588f7
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 0x4588f7
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 0x4588f9
xor eax, eax
cmp dword [ebp - 0x328], 2
mov dword [ebp - 0x324], eax
jne 0x458916
push 0x40
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00414360
cmp dword [ebp - 0x90], 0
je 0x4589a7
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4589a7
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 0x4589a7
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 0x4589b1
mov dword [ebp - 0x398], 0
sub esp, 8
lea ecx, [ebp - 0x2c0]
push 0x4c4258
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0x90], 0
je 0x458a57
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x458a57
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 0x458a57
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 0x458a61
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 0x458a9b
push eax
call dword [sym.imp.USER32.dll_DestroyAcceleratorTable]
push 1
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_CreateAcceleratorTableW]
xor ecx, ecx
cmp eax, 0xffffffff
push 1
cmove eax, ecx
lea ecx, [ebp - 0x2c0]
push 1
mov dword [ebp - 0x7c], eax
call fcn.0040db40
push 0
mov ecx, esi
call fcn.004284d0
test eax, eax
je 0x459f7e
mov edx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
nop dword [eax + eax]
mov eax, dword [esi + 0x22c]
cmp eax, 0xfffffffa
je 0x45a077
lea ecx, [ebp - 0x2c0]
cmp dword [esi + 0x25c], ecx
jne 0x459f64
cmp eax, dword [ebp - 0x398]
je 0x45a077
cmp eax, dword [ebp - 0x36c]
jne 0x459017
mov eax, dword [ebp - 0x36c]
mov edx, eax
mov ecx, dword [ebp - 0x284]
cmp eax, 0xffffffff
jne 0x458b34
mov edx, dword [ebp - 0x280]
jmp 0x458b4f
test ecx, ecx
je 0x458b67
cmp eax, 1
jl 0x458b67
cmp eax, dword [ebp - 0x280]
jg 0x458b67
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x458b67
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 0x458b69
xor eax, eax
push dword [ebp - 0x370]
cdq
push dword [ebp - 0x37c]
push edx
push eax
call fcn.0049aa20
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 0x458bd1
push 2
call fcn.0048a28e
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 0x458c7b
test eax, eax
je 0x458c35
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x458c73
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 0x458c60
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x458c92
test eax, eax
je 0x458c88
push eax
call fcn.00489ed3
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 0x458cdb
mov ecx, dword [ebp - 0x328]
ja 0x458ccb
cmp esi, ecx
jbe 0x458cdb
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 0x458d15
push 2
call fcn.0048a28e
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 0x458d8c
mov ecx, dword [eax]
test ecx, ecx
je 0x458d89
cmp word [ecx], si
je 0x458d89
inc esi
cmp word [ecx + esi*2], 0
jne 0x458d81
mov dword [eax + 4], esi
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x458d90
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.0048a28e
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 0x458e17
movzx ecx, word [ecx]
mov dword [ebp - 0x330], edi
mov eax, ecx
test cx, cx
je 0x458e17
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 0x458e00
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 0x458e23
mov edi, dword [ebp - 0x32c]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x458e4e
push eax
call fcn.00489ed3
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 0x458e75
push 2
call fcn.0048a28e
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 0x458ece
mov eax, dword [edi]
test eax, eax
je 0x458ecb
cmp word [eax], si
je 0x458ecb
inc esi
cmp word [eax + esi*2], 0
jne 0x458ec3
mov dword [edi + 4], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x458ed0
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.0048a28e
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 0x458f67
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 0x458f67
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 0x458f50
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 0x458f73
mov edi, dword [ebp - 0x334]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x458f9e
push eax
call fcn.00489ed3
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 0x458fc5
push 2
call fcn.0048a28e
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.0049acf0
divsd xmm0, qword [esi + 0x10]
mov edi, dword [ebp - 0x320]
movsd qword [esi + 8], xmm0
mov esi, dword [ebp - 0x33c]
jmp 0x459f64
cmp eax, 0xffffffb4
jne 0x459576
mov eax, dword [ebp - 0x374]
cmp dword [esi + 0x238], eax
jne 0x459576
movsd xmm0, qword [esi + 0x5a0]
lea ecx, [esi + 0x598]
ucomisd xmm0, xmm1
movsd qword [ebp - 0x360], xmm0
lahf
test ah, 0x44
jnp 0x459576
push ecx
call edx
mov edx, dword [esi + 0x59c]
mov ecx, dword [esi + 0x598]
call fcn.0049acf0
divsd xmm0, qword [esi + 0x5a8]
subsd xmm0, qword [ebp - 0x360]
comisd xmm0, xmmword [0x4cc7a8]
jbe 0x45956d
push dword [ebp - 0x374]
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x4590ed
test eax, eax
je 0x4590af
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4590e5
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 0x4590d2
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x459104
test eax, eax
je 0x4590fa
push eax
call fcn.00489ed3
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 0x4591bb
test eax, eax
je 0x459179
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4591b3
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 0x4591a0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x4591d8
test eax, eax
je 0x4591c8
push eax
call fcn.00489ed3
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 0x4592a2
ja 0x459237
cmp ecx, edx
jbe 0x4592a2
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 0x459283
push 2
call fcn.0048a28e
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 0x4592db
mov ecx, dword [eax]
test ecx, ecx
je 0x4592d8
cmp word [ecx], si
je 0x4592d8
nop dword [eax + eax]
inc esi
cmp word [ecx + esi*2], 0
jne 0x4592d0
mov dword [eax + 4], esi
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x4592e0
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.0048a28e
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 0x459367
movzx ecx, word [ecx]
mov dword [ebp - 0x330], edi
mov eax, ecx
test cx, cx
je 0x459367
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 0x459350
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 0x459373
mov edi, dword [ebp - 0x334]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x45939e
push eax
call fcn.00489ed3
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 0x4593c5
push 2
call fcn.0048a28e
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 0x45941e
mov eax, dword [edi]
test eax, eax
je 0x45941b
cmp word [eax], si
je 0x45941b
inc esi
cmp word [eax + esi*2], 0
jne 0x459413
mov dword [edi + 4], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x459420
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.0048a28e
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 0x4594b1
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 0x4594b1
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 0x4594a0
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 0x4594c0
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 0x4594f7
push eax
call fcn.00489ed3
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 0x459524
push 2
call fcn.0048a28e
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 0x459f64
mov edx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
mov eax, dword [esi + 0x22c]
cmp eax, edi
jne 0x459900
mov eax, dword [ebp - 0x36c]
mov esi, eax
mov ecx, dword [ebp - 0x284]
cmp eax, 0xffffffff
jne 0x45959f
mov esi, dword [ebp - 0x280]
jmp 0x4595bc
mov edx, dword [ebp - 0x280]
test ecx, ecx
je 0x4595e6
cmp eax, 1
jl 0x4595e6
cmp eax, edx
jg 0x4595e6
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x4595e6
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 0x4595f0
mov dword [ebp - 0x2c4], 0
mov esi, edi
cmp edi, 0xffffffff
jne 0x4595fb
mov esi, edx
jmp 0x459612
test ecx, ecx
je 0x45962c
cmp edi, 1
jl 0x45962c
cmp edi, edx
jg 0x45962c
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x45962c
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 0x45962e
xor edi, edi
push dword [ebp - 0x370]
mov eax, dword [ebp - 0x2c4]
push dword [ebp - 0x37c]
cdq
push edx
push eax
call fcn.0049aa20
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.0049aa20
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 0x459747
push 2
call fcn.0048a28e
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 0x45979b
mov ecx, dword [eax]
test ecx, ecx
je 0x459798
cmp word [ecx], si
je 0x459798
nop
inc esi
cmp word [ecx + esi*2], 0
jne 0x459790
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 0x4597b0
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.0048a28e
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 0x459841
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 0x459841
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 0x459830
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 0x459850
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 0x459887
push eax
call fcn.00489ed3
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 0x4598b4
push 2
call fcn.0048a28e
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.0049acf0
divsd xmm0, qword [esi + 0x10]
movsd qword [esi + 8], xmm0
mov esi, dword [ebp - 0x33c]
jmp 0x459f64
cmp eax, 0xffffffb4
jne 0x459c9f
mov eax, dword [ebp - 0x340]
cmp dword [esi + 0x238], eax
jne 0x459c9f
movsd xmm0, qword [esi + 0x5a0]
lea ecx, [esi + 0x598]
ucomisd xmm0, xmm1
movsd qword [ebp - 0x360], xmm0
lahf
test ah, 0x44
jnp 0x459c9f
push ecx
call edx
mov edx, dword [esi + 0x59c]
mov ecx, dword [esi + 0x598]
call fcn.0049acf0
divsd xmm0, qword [esi + 0x5a8]
subsd xmm0, qword [ebp - 0x360]
comisd xmm0, xmmword [0x4cc7a8]
jbe 0x459c9f
mov eax, dword [ebp - 0x36c]
mov edx, eax
mov ecx, dword [ebp - 0x284]
cmp eax, 0xffffffff
jne 0x45998c
mov edx, dword [ebp - 0x280]
jmp 0x4599a7
test ecx, ecx
je 0x4599bf
cmp eax, 1
jl 0x4599bf
cmp eax, dword [ebp - 0x280]
jg 0x4599bf
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x4599bf
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 0x4599c1
xor eax, eax
push dword [ebp - 0x370]
cdq
push dword [ebp - 0x37c]
push edx
push eax
call fcn.0049aa20
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 0x459a5b
test eax, eax
je 0x459a18
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459a53
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 0x459a40
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x459a72
test eax, eax
je 0x459a68
push eax
call fcn.00489ed3
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 0x459b0c
ja 0x459aa7
cmp eax, dword [ebp - 0x334]
jbe 0x459b0c
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 0x459ae7
push 2
call fcn.0048a28e
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 0x459b40
mov ecx, dword [eax]
test ecx, ecx
je 0x459b3d
cmp word [ecx], si
je 0x459b3d
inc esi
cmp word [ecx + esi*2], 0
jne 0x459b35
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 0x459b50
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.0048a28e
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 0x459be1
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 0x459be1
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 0x459bd0
mov ecx, 0x4bffa0
mov edi, 0x20
sub ecx, edx
nop dword [eax]
mov word [edx], di
lea edx, [edx + 2]
movzx eax, word [edx + ecx]
mov edi, eax
test ax, ax
jne 0x459bf0
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 0x459c27
push eax
call fcn.00489ed3
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 0x459c54
push 2
call fcn.0048a28e
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 0x459f64
mov eax, dword [esi + 0x22c]
mov ecx, dword [ebp - 0x390]
cmp eax, ecx
jne 0x459d57
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 0x459f64
cmp eax, 0xffffffbf
jne 0x459ea8
mov ecx, dword [ebp - 0x380]
cmp dword [esi + 0x238], ecx
jne 0x459ea8
push ecx
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov edi, eax
mov eax, dword [ebp - 0x28]
test edi, edi
jne 0x459dd5
test eax, eax
je 0x459d94
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x459dca
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 0x459db7
xor ecx, ecx
mov word [edx + eax*2], cx
mov edi, dword [ebp - 0x28]
jmp 0x459dec
test eax, eax
je 0x459de2
push eax
call fcn.00489ed3
add esp, 4
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
cmp edi, 0x4c80b4
jne 0x459dff
mov cl, 1
jmp 0x459e7c
test edi, edi
je 0x459e7a
mov esi, 0x4c80b4
movzx eax, word [edi]
mov ecx, eax
test ax, ax
jne 0x459e21
cmp word [esi], ax
jne 0x459e26
mov esi, dword [ebp - 0x33c]
mov cl, 1
jmp 0x459e7c
cmp ax, word [esi]
je 0x459e6c
xor edx, edx
cmp dx, ax
jne 0x459e35
mov dword [ebp - 0x31c], edx
jmp 0x459e47
push ecx
call fcn.0048e154
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 0x459e57
xor eax, eax
jmp 0x459e63
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x459e74
add edi, 2
add esi, 2
jmp 0x459e08
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 0x459f64
mov ecx, dword [ebp - 0x354]
cmp eax, ecx
jne 0x459f0c
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 0x459f64
cmp eax, dword [ebp - 0x3a0]
jne 0x459f64
push 1
push 0
lea ecx, [ebp - 0x2c0]
call fcn.0040db40
push 1
mov ecx, esi
call fcn.004284d0
test eax, eax
jne 0x459f23
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
mov ecx, esi
push eax
push 1
push 0x4c8a38
call fcn.00432b40
cmp eax, 1
je 0x459f7e
push 1
push 5
lea ecx, [ebp - 0x2c0]
call fcn.0040db40
push 0
mov ecx, esi
call fcn.004284d0
mov edx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
test eax, eax
jne 0x458ae0
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 0x45a07f
test eax, eax
je 0x45a033
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45a069
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 0x45a056
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
jmp 0x45a094
or edi, 0xffffffff
jmp 0x45c25b
test eax, eax
je 0x45a08c
push eax
call fcn.00489ed3
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 0x45a0c3
test eax, eax
jne 0x45a0b2
cmp word [esi], ax
je 0x45a0ad
inc eax
cmp word [esi + eax*2], 0
jne 0x45a0a5
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x45a0c3
push esi
mov byte [ebp - 0x20], 1
call fcn.0048e06c
add esp, 4
jmp 0x45a0c9
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 0x45a13b
test eax, eax
je 0x45a0f6
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45a133
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 0x45a120
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45a152
test eax, eax
je 0x45a148
push eax
call fcn.00489ed3
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 0x45a1db
test eax, eax
je 0x45a198
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45a1d3
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 0x45a1c0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45a1f2
test eax, eax
je 0x45a1e8
push eax
call fcn.00489ed3
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 0x45a27e
test eax, eax
je 0x45a238
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45a273
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 0x45a260
xor ecx, ecx
mov word [edx + eax*2], cx
mov esi, dword [ebp - 0x28]
jmp 0x45a295
test eax, eax
je 0x45a28b
push eax
call fcn.00489ed3
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
cmp esi, 0x4c8a98
je 0x45a2c7
test esi, esi
je 0x45a442
mov edi, 0x4c8a98
nop
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a3e9
cmp word [edi], ax
jne 0x45a3ee
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a2da
push eax
call fcn.00489ed3
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8ac4], 0
jne 0x45a2e3
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a340
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 0x45a323
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 0x45adb1
push dword [ebp - 0x380]
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x2f4]
test esi, esi
jne 0x45abfc
test eax, eax
je 0x45a396
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x2ec], 0
mov dword [ebp - 0x2f0], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2f0]
xor ecx, ecx
mov dword [ebp - 0x2f4], edx
test eax, eax
jle 0x45a3de
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 0x45a3c5
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ac19
cmp ax, word [edi]
je 0x45a434
xor edx, edx
cmp dx, ax
jne 0x45a3fd
mov dword [ebp - 0x31c], edx
jmp 0x45a40f
push ecx
call fcn.0048e154
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 0x45a41f
xor eax, eax
jmp 0x45a42b
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a43f
add esi, 2
add edi, 2
jmp 0x45a2b0
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c2fd8
je 0x45a46e
test esi, esi
je 0x45a55b
mov edi, 0x4c2fd8
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a502
cmp word [edi], ax
jne 0x45a507
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a481
push eax
call fcn.00489ed3
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c8ac8], 0
jne 0x45a490
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a340
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 0x45a4e0
jmp 0x45a340
cmp ax, word [edi]
je 0x45a54d
xor edx, edx
cmp dx, ax
jne 0x45a516
mov dword [ebp - 0x31c], edx
jmp 0x45a528
push ecx
call fcn.0048e154
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 0x45a538
xor eax, eax
jmp 0x45a544
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a558
add esi, 2
add edi, 2
jmp 0x45a457
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c7930
je 0x45a587
test esi, esi
je 0x45a66b
mov edi, 0x4c7930
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a612
cmp word [edi], ax
jne 0x45a617
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a59a
push eax
call fcn.00489ed3
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8ad0], 0
jne 0x45a5a3
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a340
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 0x45a5f0
jmp 0x45a340
cmp ax, word [edi]
je 0x45a65d
xor edx, edx
cmp dx, ax
jne 0x45a626
mov dword [ebp - 0x31c], edx
jmp 0x45a638
push ecx
call fcn.0048e154
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 0x45a648
xor eax, eax
jmp 0x45a654
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a668
add esi, 2
add edi, 2
jmp 0x45a570
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c009c
je 0x45a697
test esi, esi
je 0x45a77b
mov edi, 0x4c009c
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a722
cmp word [edi], ax
jne 0x45a727
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a6aa
push eax
call fcn.00489ed3
add esp, 4
mov byte [ebp - 0x2f8], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8ad4], 0
jne 0x45a6b3
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a340
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 0x45a700
jmp 0x45a340
cmp ax, word [edi]
je 0x45a76d
xor edx, edx
cmp dx, ax
jne 0x45a736
mov dword [ebp - 0x31c], edx
jmp 0x45a748
push ecx
call fcn.0048e154
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 0x45a758
xor eax, eax
jmp 0x45a764
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a778
add esi, 2
add edi, 2
jmp 0x45a680
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8ad8
je 0x45a7a7
test esi, esi
je 0x45a89b
mov edi, 0x4c8ad8
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a842
cmp word [edi], ax
jne 0x45a847
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a7ba
push eax
call fcn.00489ed3
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bf9f0], ax
je 0x45a7dc
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bf9f0], 0
jne 0x45a7d0
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a340
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 0x45a820
jmp 0x45a340
cmp ax, word [edi]
je 0x45a88d
xor edx, edx
cmp dx, ax
jne 0x45a856
mov dword [ebp - 0x31c], edx
jmp 0x45a868
push ecx
call fcn.0048e154
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 0x45a878
xor eax, eax
jmp 0x45a884
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a898
add esi, 2
add edi, 2
jmp 0x45a790
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8af0
je 0x45a8c7
test esi, esi
je 0x45a9bb
mov edi, 0x4c8af0
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45a962
cmp word [edi], ax
jne 0x45a967
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a8da
push eax
call fcn.00489ed3
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bf950], ax
je 0x45a8fc
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bf950], 0
jne 0x45a8f0
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a340
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 0x45a940
jmp 0x45a340
cmp ax, word [edi]
je 0x45a9ad
xor edx, edx
cmp dx, ax
jne 0x45a976
mov dword [ebp - 0x31c], edx
jmp 0x45a988
push ecx
call fcn.0048e154
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 0x45a998
xor eax, eax
jmp 0x45a9a4
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a9b8
add esi, 2
add edi, 2
jmp 0x45a8b0
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8b1c
je 0x45a9e7
test esi, esi
je 0x45aadb
mov edi, 0x4c8b1c
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45aa82
cmp word [edi], ax
jne 0x45aa87
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45a9fa
push eax
call fcn.00489ed3
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bf9a0], ax
je 0x45aa1c
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bf9a0], 0
jne 0x45aa10
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a340
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 0x45aa60
jmp 0x45a340
cmp ax, word [edi]
je 0x45aacd
xor edx, edx
cmp dx, ax
jne 0x45aa96
mov dword [ebp - 0x31c], edx
jmp 0x45aaa8
push ecx
call fcn.0048e154
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 0x45aab8
xor eax, eax
jmp 0x45aac4
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45aad8
add esi, 2
add edi, 2
jmp 0x45a9d0
mov esi, dword [ebp - 0x28]
cmp esi, 0x4c8b50
je 0x45ab07
test esi, esi
je 0x45a34d
mov edi, 0x4c8b50
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x45aba2
cmp word [edi], ax
jne 0x45aba7
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45ab1a
push eax
call fcn.00489ed3
add esp, 4
xor eax, eax
mov byte [ebp - 0x2f8], 0
cmp word [0x4bfae0], ax
je 0x45ab3c
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bfae0], 0
jne 0x45ab30
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2fc]
xor ecx, ecx
mov dword [ebp - 0x300], edx
test eax, eax
jle 0x45a340
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 0x45ab80
jmp 0x45a340
cmp ax, word [edi]
je 0x45abf1
xor edx, edx
cmp dx, ax
jne 0x45abb6
mov dword [ebp - 0x31c], edx
jmp 0x45abc8
push ecx
call fcn.0048e154
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 0x45abd8
xor eax, eax
jmp 0x45abe4
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp word [ebp - 0x31c], ax
jne 0x45a34d
add esi, 2
add edi, 2
jmp 0x45aaf0
test eax, eax
je 0x45ac09
push eax
call fcn.00489ed3
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 0x45aca1
test eax, eax
je 0x45ac4a
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x2d4], 0
mov dword [ebp - 0x2d8], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2d8]
xor ecx, ecx
mov dword [ebp - 0x2dc], edx
test eax, eax
jle 0x45ac99
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 0x45ac80
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45acbe
test eax, eax
je 0x45acae
push eax
call fcn.00489ed3
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 0x45add5
push dword [ebp - 0x350]
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov edi, eax
mov eax, dword [ebp - 0x2e8]
test edi, edi
jne 0x45ad8b
test eax, eax
je 0x45ad34
push eax
call fcn.00489ed3
add esp, 4
push 2
mov byte [ebp - 0x2e0], 0
mov dword [ebp - 0x2e4], 0
call fcn.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2e4]
xor ecx, ecx
mov dword [ebp - 0x2e8], edx
test eax, eax
jle 0x45ad7c
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 0x45ad63
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x2e0], 1
jmp 0x45add5
test eax, eax
je 0x45ad98
push eax
call fcn.00489ed3
add esp, 4
mov dword [ebp - 0x2e8], edi
mov dword [ebp - 0x2e4], 0
mov byte [ebp - 0x2e0], 1
jmp 0x45add5
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 0x45ae24
push 2
call fcn.0048a28e
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 0x45ae60
add ecx, eax
test esi, esi
je 0x45ae82
xor eax, eax
cmp word [esi], ax
je 0x45ae80
inc eax
cmp word [esi + eax*2], 0
jne 0x45ae78
add ecx, eax
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c439c], 0
jne 0x45ae84
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.0048a28e
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 0x45aef1
movzx ecx, word [eax]
test cx, cx
je 0x45aef1
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 0x45aee0
mov edi, 0x4c8b78
mov ecx, 0x50
sub edi, edx
nop dword [eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x45af00
mov ecx, dword [ebp - 0x358]
mov edi, 0x4c439c
test esi, esi
je 0x45af51
movzx eax, word [esi]
mov ecx, eax
mov dword [ebp - 0x384], ecx
mov ecx, dword [ebp - 0x358]
test ax, ax
je 0x45af51
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 0x45af40
mov eax, 0x2e
mov word [edx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
lea edx, [edx + 2]
test ax, ax
jne 0x45af56
xor eax, eax
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x45af81
push eax
call fcn.00489ed3
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 0x45afa9
push eax
call fcn.00489ed3
add esp, 4
mov edx, dword [ebp - 0x28]
test edx, edx
jne 0x45afc8
push 2
call fcn.0048a28e
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
mov edi, dword [ebp - 0x33c]
sub esp, 8
mov byte [ebp - 0x20], 1
push 0
push 0xffffffffffffffb0
sub esp, 0x10
lea eax, [edi + 0x2a8]
lea ecx, [edi + 0x5b0]
push eax
push edx
call fcn.004192c0
mov ecx, eax
call fcn.0041a070
mov ecx, eax
call fcn.0041a580
push 0
push 0
lea eax, [ebp - 0x318]
push eax
push 0x46fd50
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 0x45b081
cmp esi, eax
je 0x45b081
nop dword [eax]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x45b081
push 0
mov ecx, edi
call fcn.004284d0
cmp dword [edi], 0
jne 0x45b040
cmp dword [edi + 0x22c], 0xfffffffa
jne 0x45b040
push 0x4c2750
push 0xffffffffffffffb0
lea ecx, [edi + 0x5b0]
mov dword [edi], 1
call fcn.0041a070
jmp 0x45b040
mov eax, dword [edi + 0x510]
cmp eax, 0xffffffff
je 0x45b0ab
test eax, eax
je 0x45b0ab
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x510], 0xffffffff
mov dword [edi + 0x514], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
sub esp, 8
lea ecx, [edi + 0x130]
call fcn.0041b0e0
sub esp, 8
lea ecx, [edi + 0x168]
call fcn.0041b0e0
sub esp, 8
lea ecx, [edi + 0x1a0]
call fcn.0041b0e0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x45b0f7
push eax
call fcn.00489ed3
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 0x45b172
mov byte [ebp - 0x20], al
inc eax
cmp word [eax*2 + 0x4c8bd0], 0
jne 0x45b113
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b167
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 0x45b150
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45c100
cmp eax, 0xfffffffd
jne 0x45b1e2
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8c38], 0
jne 0x45b180
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b167
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 0x45b1c0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45c100
cmp eax, 0xfffffffc
jne 0x45b252
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8cb0], 0
jne 0x45b1f0
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b167
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 0x45b230
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45c100
cmp dword [edi], 0
je 0x45b2c2
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8d40], 0
jne 0x45b260
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b167
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 0x45b2a0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45c100
cmp eax, 1
jne 0x45b32c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc490], 0
jne 0x45b2d0
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b717
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 0x45b310
jmp 0x45b717
cmp eax, 2
jne 0x45b39c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc4c4], 0
jne 0x45b340
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b717
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 0x45b380
jmp 0x45b717
cmp eax, 3
jne 0x45b40c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc4ec], 0
jne 0x45b3b0
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b717
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 0x45b3f0
jmp 0x45b717
cmp eax, 4
jne 0x45b47c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc518], 0
jne 0x45b420
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b717
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 0x45b460
jmp 0x45b717
cmp eax, 5
jne 0x45b4ec
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc53c], 0
jne 0x45b490
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b717
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 0x45b4d0
jmp 0x45b717
cmp eax, 6
jne 0x45b55c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc564], 0
jne 0x45b500
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b717
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 0x45b540
jmp 0x45b717
cmp eax, 0x1001
jne 0x45b5cc
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc590], 0
jne 0x45b570
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b717
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 0x45b5b0
jmp 0x45b717
cmp eax, 0x9c41
jne 0x45b63c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc5b8], 0
jne 0x45b5e0
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b717
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 0x45b620
jmp 0x45b717
cmp eax, 0x9c42
jne 0x45b6a9
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc5d8], 0
jne 0x45b650
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b717
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 0x45b690
jmp 0x45b717
cmp eax, 0x9c44
jne 0x45b744
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc650], 0
jne 0x45b6c0
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45b717
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 0x45b700
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x20], 1
cmp dword [ebp - 0x28], ecx
jne 0x45bffd
push 2
call fcn.0048a28e
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x24], ecx
jmp 0x45bffd
cmp eax, 0xffffffff
jne 0x45b7ac
mov byte [ebp - 0x20], 0
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x4c8d80], 0
jne 0x45b750
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bff7
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 0x45b790
jmp 0x45bff7
cmp eax, 0xfffffffe
jne 0x45b81c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c8dd0], 0
jne 0x45b7c0
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bff7
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 0x45b800
jmp 0x45bff7
cmp eax, 0x9c40
jne 0x45b88c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8e18], 0
jne 0x45b830
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bff7
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 0x45b870
jmp 0x45bff7
cmp eax, 0x9c43
jne 0x45b8fc
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8e48], 0
jne 0x45b8a0
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bff7
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 0x45b8e0
cmp eax, 0xa028
jne 0x45b96c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8e80], 0
jne 0x45b910
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.0048a28e
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45bff7
cmp eax, 0xa02a
jne 0x45b9dc
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c4614], 0
jne 0x45b980
cmp eax, 0xa02b
jne 0x45ba4c
xor ecx, ecx
mov word [edx + eax*2], cx
cmp dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 0
jne 0x45c030
cmp dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 1
jne 0x45c123
push 2
call fcn.0048a28e
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 0x45c153
push 2
call fcn.0048a28e
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x384]
mov dword [ebp - 0x24], ecx
push 0
push 0x4c2b50
push ecx
push dword [ebp - 0x28]
lea ecx, [edi + 0x5b0]
mov byte [ebp - 0x20], 1
push eax
push 0x64
call fcn.0041a070
mov ecx, eax
call fcn.00419f00
mov ecx, eax
call fcn.0041a380
push 0
mov ecx, edi
call fcn.004284d0
test eax, eax
je 0x45c1ca
nop
mov ecx, dword [edi + 0x22c]
cmp ecx, 0xfffffffa
je 0x45c1ca
lea eax, [edi + 0x628]
cmp dword [edi + 0x25c], eax
jne 0x45c1bd
cmp ecx, dword [edi + 0x5b8]
je 0x45c1ca
push 0
mov ecx, edi
call fcn.004284d0
test eax, eax
jne 0x45c190
push dword [ebp - 0x3a4]
mov ecx, edi
call fcn.0042cd20
lea ecx, [edi + 0x5b0]
call fcn.00419810
mov edi, 1
cmp esi, 0xffffffff
je 0x45c1ff
test esi, esi
je 0x45c1ff
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2dc]
test eax, eax
je 0x45c216
push eax
call fcn.00489ed3
add esp, 4
mov eax, dword [ebp - 0x2e8]
test eax, eax
je 0x45c22d
push eax
call fcn.00489ed3
add esp, 4
mov eax, dword [ebp - 0x2f4]
test eax, eax
je 0x45c244
push eax
call fcn.00489ed3
add esp, 4
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45c25b
push eax
call fcn.00489ed3
add esp, 4
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 0xc
call fcn.0040c540
mov eax, dword [ebp - 0x284]
test eax, eax
je 0x45c281
push eax
call fcn.00489ed3
add esp, 4
mov eax, dword [ebp - 0x1b0]
test eax, eax
je 0x45c298
push eax
call fcn.00489ed3
add esp, 4
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x58]
test ecx, ecx
je 0x45c2c9
test eax, eax
je 0x45c2da
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 0x45c2da
push eax
call fcn.00489ed3
add esp, 4
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x45c2ee
push eax
call fcn.00489ed3
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x45c302
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
push eax
push 0
push 0x4c3bf0
mov ecx, esi
call fcn.00432b40
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00489ec5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret