Function at 0x460820
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 0x49ec66
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x328
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 edi, ecx
mov dword [ebp - 0x304], edi
mov eax, dword [edi + 0xbc]
lea ecx, [edi + 0x2e8]
cmp eax, 0xffffffff
jne 0x46087c
mov eax, dword [ecx]
mov edx, dword [edi + 0x2e4]
test edx, edx
je 0x463890
cmp eax, 1
jl 0x463890
cmp eax, dword [ecx]
jg 0x463890
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x463890
cmp dword [edx + eax*8], 0xf
jne 0x463890
push 2
push 0xffffffffffffffff
push 0x100c
push dword [edx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x338], eax
test eax, eax
js 0x463890
push ecx
push dword [edi + 0xd8]
lea ecx, [edi + 0x2a8]
call fcn.00416520
mov dword [ebp - 0x324], eax
lea ecx, [edi + 0x2a8]
test eax, eax
jns 0x46090e
push ecx
push 0x1c2
push 0x96
push ecx
push 0
push 0x4c93c0
jmp 0x4638a9
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 4
push eax
mov byte [ebp - 4], 1
push dword [edi + 0xd8]
call fcn.00416470
mov dword [ebp - 0x318], eax
test eax, eax
jne 0x460984
push eax
lea ecx, [ebp - 0x34]
call fcn.00401860
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x318], eax
jmp 0x460992
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x2c], 1
cmp eax, 0x4c21c0
je 0x4609c0
test eax, eax
je 0x460a66
mov esi, 0x4c21c0
sub eax, esi
mov dword [ebp - 0x2e4], eax
nop
movzx eax, word [eax + esi]
mov ecx, eax
test ax, ax
jne 0x460a0d
cmp word [esi], ax
jne 0x460a12
push ecx
push 0x1c2
push 0x96
lea eax, [edi + 0x2a8]
mov ecx, edi
push eax
push 0
push 0x4c9c98
call fcn.00432b40
or edi, 0xffffffff
mov eax, dword [ebp - 0x318]
test eax, eax
je 0x4609f6
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x460a06
push eax
call fcn.00489c73
add esp, 4
mov eax, edi
jmp 0x4638b3
cmp ax, word [esi]
je 0x460a58
xor edx, edx
cmp dx, ax
jne 0x460a21
mov dword [ebp - 0x2ec], edx
jmp 0x460a33
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x2ec], eax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x460a43
xor eax, eax
jmp 0x460a4f
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x2ec], ax
jne 0x460a66
mov eax, dword [ebp - 0x2e4]
add esi, 2
jmp 0x4609b0
xorps xmm0, xmm0
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x58], 0
movups xmmword [ebp - 0x48], xmm0
push ecx
mov byte [ebp - 4], 2
lea eax, [edi + 0x2a8]
movaps xmm0, xmmword [0x4cd010]
lea ecx, [ebp - 0x58]
push 0
push dword [edi + 0x54]
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0xd
push dword [edi + 0x44]
mov dword [ebp - 0x3c], 0
push eax
call fcn.00417480
mov edx, dword [ebp - 0x324]
lea ecx, [edi + 0x2a8]
push 1
push edx
mov byte [ebp - 4], 3
push dword [edi + 0xd8]
call fcn.00416470
mov dword [ebp - 0x2e4], eax
lea esi, [edi + 0x1e4]
test eax, eax
jne 0x460ae5
push eax
mov ecx, esi
call fcn.00401860
jmp 0x460b07
mov eax, dword [esi]
test eax, eax
je 0x460af4
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2e4]
mov dword [esi], eax
mov dword [esi + 4], 0
mov byte [esi + 8], 1
mov ecx, esi
call fcn.00401fd0
push 2
push dword [ebp - 0x324]
lea ecx, [edi + 0x2a8]
mov dword [ebp - 0x300], eax
push dword [edi + 0xd8]
mov dword [ebp - 0x32c], edx
call fcn.00416470
mov dword [ebp - 0x2e4], eax
test eax, eax
jne 0x460b47
push eax
mov ecx, esi
call fcn.00401860
jmp 0x460b69
mov eax, dword [esi]
test eax, eax
je 0x460b56
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2e4]
mov dword [esi], eax
mov dword [esi + 4], 0
mov byte [esi + 8], 1
lea ecx, [edi + 0x1e4]
call fcn.00401fd0
mov ecx, dword [edi + 0xd8]
mov dword [ebp - 0x2f8], eax
mov dword [ebp - 0x308], edx
cmp ecx, 0xffffffff
jne 0x460b93
mov ecx, dword [edi + 0x2e8]
jmp 0x460bb4
mov edx, dword [edi + 0x2e4]
test edx, edx
je 0x460bd8
cmp ecx, 1
jl 0x460bd8
cmp ecx, dword [edi + 0x2e8]
jg 0x460bd8
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x460bd8
mov eax, dword [edi + 0x2e4]
lea ecx, [ecx + ecx*8]
push 0
push 0
push 0x1004
push dword [eax + ecx*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [edi + 0xd8]
jmp 0x460bda
xor eax, eax
mov edx, dword [ebp - 0x324]
inc edx
push 4
cmp eax, edx
jle 0x460d6a
push edx
push ecx
lea ecx, [edi + 0x2a8]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x318]
test esi, esi
jne 0x460c2d
test eax, eax
je 0x460c11
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
call fcn.0048a02b
add esp, 4
xor ecx, ecx
mov word [eax], cx
jmp 0x460c43
test eax, eax
je 0x460c3a
push eax
call fcn.00489c73
add esp, 4
mov eax, esi
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x2c], 1
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x318], eax
cmp eax, 0x4c21c0
je 0x460c80
test eax, eax
je 0x460d0f
mov esi, 0x4c21c0
sub eax, esi
mov dword [ebp - 0x2e4], eax
nop dword [eax]
movzx eax, word [esi + eax]
mov ecx, eax
test ax, ax
jne 0x460cb6
cmp word [esi], ax
jne 0x460cbb
mov eax, dword [ebp - 0x324]
lea ecx, [edi + 0x2a8]
push 2
inc eax
push eax
push dword [edi + 0xd8]
call fcn.00416470
mov dword [ebp - 0x2e4], eax
test eax, eax
jne 0x460d21
push eax
lea ecx, [edi + 0x1e4]
call fcn.00401860
jmp 0x460d51
cmp ax, word [esi]
je 0x460d01
xor edx, edx
cmp dx, ax
jne 0x460cca
mov dword [ebp - 0x2ec], edx
jmp 0x460cdc
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x2ec], eax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x460cec
xor eax, eax
jmp 0x460cf8
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x2ec], ax
jne 0x460d0f
mov eax, dword [ebp - 0x2e4]
add esi, 2
jmp 0x460c70
mov eax, dword [ebp - 0x324]
push 1
inc eax
push eax
push dword [edi + 0xd8]
jmp 0x460d76
mov eax, dword [edi + 0x1e4]
test eax, eax
je 0x460d34
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2e4]
mov dword [edi + 0x1e4], eax
mov dword [edi + 0x1e8], 0
mov byte [edi + 0x1ec], 1
lea ecx, [edi + 0x1e4]
call fcn.00401fd0
add eax, dword [ebp - 0x2f8]
adc edx, dword [ebp - 0x308]
jmp 0x460de1
push dword [ebp - 0x338]
push dword [edi + 0xbc]
lea ecx, [edi + 0x2a8]
call fcn.00416470
mov dword [ebp - 0x2e4], eax
test eax, eax
jne 0x460d9a
push 0
lea ecx, [edi + 0x1e4]
call fcn.00401860
jmp 0x460dca
mov eax, dword [edi + 0x1e4]
test eax, eax
je 0x460dad
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2e4]
mov dword [edi + 0x1e4], eax
mov byte [edi + 0x1ec], 1
mov dword [edi + 0x1e8], 0
lea ecx, [edi + 0x1e4]
call fcn.00401fd0
sub eax, dword [ebp - 0x300]
sbb edx, dword [ebp - 0x32c]
push 3
push dword [ebp - 0x324]
lea ecx, [edi + 0x2a8]
mov dword [ebp - 0x310], eax
push dword [edi + 0xd8]
mov dword [ebp - 0x314], edx
call fcn.00416470
mov dword [ebp - 0x2e4], eax
test eax, eax
jne 0x460e1e
push eax
lea ecx, [edi + 0x1e4]
call fcn.00401860
jmp 0x460e4e
mov eax, dword [edi + 0x1e4]
test eax, eax
je 0x460e31
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2e4]
mov dword [edi + 0x1e4], eax
mov dword [edi + 0x1e8], 0
mov byte [edi + 0x1ec], 1
lea ecx, [edi + 0x1e4]
call fcn.00401fd0
add eax, 0x100000
mov esi, eax
mov dword [ebp - 0x330], eax
adc edx, 0
and esi, 0xfffff
mov eax, esi
mov dword [ebp - 0x334], edx
or eax, 0
je 0x460e98
mov ecx, 0x100000
mov eax, 0
sub ecx, esi
sbb eax, eax
add dword [ebp - 0x330], ecx
adc edx, eax
mov dword [ebp - 0x334], edx
push dword [edi + 0x4d8]
and dword [ebp - 0x310], 0xfff00000
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x460ec0
mov eax, dword [edi + 0x4d8]
mov dword [ebp - 0x2ec], eax
jmp 0x460eca
mov dword [ebp - 0x2ec], 0
push 0x268
lea eax, [ebp - 0x2c0]
push 0
push eax
call fcn.0048b770
add esp, 0xc
mov word [ebp - 0x288], 0
lea esi, [edi + 0x22c]
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
test esi, esi
lea eax, [ebp - 0x2c0]
lea ecx, [ebp - 0x2c0]
cmovne eax, esi
mov esi, dword [ebp - 0x2ec]
push esi
push 0xffffffffffffffff
push SysReAllocString
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xb4
push 0x23a
push 0x4c9d4c
push 0x4c3cf8
mov dword [ebp - 0x100], eax
call fcn.0040bf80
push ecx
push 0xc
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff000000
push 0xb4
push 0x23a
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 5
call fcn.004167f0
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x2e4], eax
test esi, esi
je 0x461004
lea eax, [edi + 0x2f8]
xor esi, esi
mov dword [ebp - 0x2ec], eax
mov eax, dword [eax]
test eax, eax
je 0x460fe8
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x460fe8
mov eax, dword [ebp - 0x2ec]
inc esi
add eax, 4
mov dword [ebp - 0x2ec], eax
cmp esi, 0x30
jl 0x460fc0
jmp 0x461004
mov eax, dword [ebp - 0x2e4]
mov dword [edi + esi*4 + 0x2f8], eax
inc esi
cmp esi, dword [edi + 0x2f4]
jle 0x461004
mov dword [edi + 0x2f4], esi
movsd xmm0, qword [0x4cc780]
xor eax, eax
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0xffffff
movsd qword [ebp - 0x150], xmm0
mov dword [ebp - 0x148], 0x2bc
mov byte [ebp - 0x144], 1
mov byte [ebp - 0x102], 0
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x461042
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x142]
push 0x20
push eax
call fcn.0048cf13
add esp, 0x10
mov dword [ebp - 0xd0], 0x1400
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
test al, al
je 0x4610eb
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 0x4c9d74
push 0x4c018c
push 0
call esi
test eax, eax
je 0x4610eb
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cce60]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
movsd xmm0, qword [0x4cc770]
xor eax, eax
movsd qword [ebp - 0x150], xmm0
mov dword [ebp - 0x148], 0x190
mov byte [ebp - 0x144], 1
mov byte [ebp - 0x102], 0
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x461120
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x142]
push 0x20
push eax
call fcn.0048cf13
add esp, 0x10
mov dword [ebp - 0xd0], 0x400
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4611c0
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 0x4c9da0
push 0x4c018c
push 0
call esi
test eax, eax
je 0x4611c0
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 0x154
push 0x34
and eax, 1
push 0x78
shl eax, 0x11
add eax, 0x50011000
push eax
push 0
push 0x4c0258
push 0
call esi
test eax, eax
jne 0x46126f
xor esi, esi
mov dword [ebp - 0x2ec], eax
xor edx, edx
mov ecx, dword [ebp - 0x284]
test ecx, ecx
je 0x4612f2
cmp esi, 1
jl 0x4612c1
cmp esi, dword [ebp - 0x280]
jg 0x4612c1
lea eax, [esi + esi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x4612c1
mov eax, dword [ebp - 0x2ec]
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, esi
cmp esi, 0xffffffff
jne 0x4612c1
mov edx, dword [ebp - 0x280]
jmp 0x4612dc
push eax
push 0x17
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
mov esi, eax
movaps xmm0, xmmword [0x4cce20]
mov dword [ebp - 0x2ec], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
mov eax, dword [ebp - 0x284]
mov dword [eax + edx*8 + 0x44], 0
mov edx, esi
cmp esi, 0xffffffff
jne 0x46120a
mov eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x284]
jmp 0x461241
test ecx, ecx
je 0x4612f2
cmp esi, 1
jl 0x4612f2
cmp esi, dword [ebp - 0x280]
jg 0x4612f2
lea eax, [esi + esi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x4612f2
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 - 0x2f8]
mov eax, dword [ebp - 0x308]
shrd ecx, eax, 0x14
shr eax, 0x14
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00401cb0
mov ecx, eax
mov dword [ebp - 0x2e4], ecx
cmp dword [ecx], 0
jne 0x461336
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x2e4]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
mov eax, dword [ecx]
mov byte [ecx + 8], 1
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2e4], eax
call fcn.00416d40
test al, al
jne 0x461360
mov dword [ebp - 0x328], 0
jmp 0x4613e4
test byte [ebp - 0x78], 1
mov eax, 0x50022080
push 0
push dword [ebp - 0x1a4]
mov ecx, 0x50002080
cmovne ecx, eax
mov eax, dword [ebp - 0x280]
inc eax
or ecx, 0x10000
push eax
push dword [ebp - 0x8c]
push 0x19
push 0x50
push 0x33
push 0x1d6
push ecx
push dword [ebp - 0x2e4]
push 0x4c0220
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
jne 0x4613bb
mov dword [ebp - 0x328], eax
jmp 0x4613e4
push eax
push 0xc
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccd80]
mov dword [ebp - 0x328], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
mov ecx, dword [ebp - 0x310]
sub esp, 8
mov eax, dword [ebp - 0x314]
shrd ecx, eax, 0x14
push ecx
push 0
push dword [ebp - 0x328]
lea ecx, [ebp - 0x2c0]
call fcn.00412800
mov eax, dword [ebp - 0x314]
push ecx
mov ecx, dword [ebp - 0x310]
sub ecx, dword [ebp - 0x330]
sbb eax, dword [ebp - 0x334]
push eax
mov eax, dword [ebp - 0x308]
push ecx
mov ecx, dword [ebp - 0x2f8]
sub ecx, dword [ebp - 0x330]
sbb eax, dword [ebp - 0x334]
push eax
push ecx
push esi
lea ecx, [ebp - 0x2c0]
call fcn.00415380
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4614c5
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 0xa0
push 0x50
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c9dc0
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x4614c5
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccb00]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
sub esp, 8
lea ecx, [ebp - 0x28]
push dword [ebp - 0x334]
push dword [ebp - 0x330]
call fcn.00402130
mov ecx, eax
mov dword [ebp - 0x2ec], ecx
mov eax, dword [ecx + 4]
mov byte [ecx + 8], 0
test eax, eax
jne 0x46150b
mov edx, dword [ecx]
test edx, edx
je 0x461508
cmp word [edx], ax
je 0x461508
nop word [eax + eax]
inc eax
cmp word [edx + eax*2], 0
jne 0x461500
mov dword [ecx + 4], eax
xor ecx, ecx
nop dword [eax]
inc ecx
cmp word [ecx*2 + 0x4bffa0], 0
jne 0x461510
add eax, ecx
mov edx, 2
mov dword [ebp - 0x30c], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
mov dword [ebp - 0x2f4], esi
mov eax, dword [ebp - 0x2ec]
add esp, 4
mov dword [ebp - 0x300], edx
mov ecx, dword [eax]
mov dword [ebp - 0x2e4], ecx
test ecx, ecx
je 0x461591
movzx ecx, word [ecx]
mov dword [ebp - 0x2f4], esi
mov eax, ecx
test cx, cx
je 0x461591
mov edi, dword [ebp - 0x2e4]
sub edi, edx
mov dword [ebp - 0x2f4], esi
nop dword [eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x461580
mov esi, 0x4bffa0
mov ecx, 0x20
sub esi, edx
nop dword [eax]
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [edx + esi]
mov ecx, eax
test ax, ax
jne 0x4615a0
mov esi, dword [ebp - 0x2ec]
xor eax, eax
mov word [edx], ax
mov eax, dword [esi]
test eax, eax
je 0x4615cb
push eax
call fcn.00489c73
add esp, 4
mov ecx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x30c]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov byte [esi + 8], 1
test ecx, ecx
jne 0x4615f8
push 2
call fcn.0048a02b
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
mov byte [esi + 8], 1
lea ecx, [ebp - 0x2c0]
mov esi, dword [esi]
call fcn.00416d40
test al, al
je 0x461677
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 0x14
push 0x50
push 0x50
and eax, 1
push 0xbe
shl eax, 0x11
add eax, 0x50800302
push eax
push esi
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
push 0x4c018c
push 0
call esi
test eax, eax
je 0x46167d
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccc60]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
jmp 0x46167d
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4616f2
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 0xa0
push 0x67
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c9df0
push 0x4c018c
push 0
call esi
test eax, eax
je 0x4616f2
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccb10]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
sub esp, 8
lea ecx, [ebp - 0x28]
push dword [ebp - 0x314]
push dword [ebp - 0x310]
call fcn.00402130
mov dword [ebp - 0x2f0], eax
mov esi, dword [eax + 4]
mov byte [eax + 8], 0
test esi, esi
jne 0x461730
mov ecx, dword [eax]
test ecx, ecx
je 0x46172d
cmp word [ecx], si
je 0x46172d
inc esi
cmp word [ecx + esi*2], 0
jne 0x461725
mov dword [eax + 4], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x461732
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [ebp - 0x2f0]
mov edx, eax
mov edi, dword [ebp - 0x2f4]
add esp, 4
mov dword [ebp - 0x2ec], edx
mov dword [ebp - 0x31c], edi
mov eax, dword [ecx]
mov dword [ebp - 0x2e4], eax
test eax, eax
je 0x4617c1
movzx ecx, word [eax]
mov eax, ecx
mov dword [ebp - 0x30c], eax
mov eax, edi
mov dword [ebp - 0x31c], eax
test cx, cx
je 0x4617c1
mov edi, dword [ebp - 0x2e4]
sub edi, edx
movzx ecx, cx
mov dword [ebp - 0x31c], eax
nop dword [eax + eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x4617b0
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 0x4617d0
mov ecx, dword [ebp - 0x2f0]
xor eax, eax
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x461801
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x2f0]
add esp, 4
mov eax, dword [ebp - 0x2ec]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov byte [ecx + 8], 1
test eax, eax
jne 0x46182e
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x2f0]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
mov esi, dword [ecx]
mov byte [ecx + 8], 1
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x4618ad
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 0x14
push 0x50
push 0x67
and eax, 1
push 0xbe
shl eax, 0x11
add eax, 0x50800302
push eax
push esi
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
push 0x4c018c
push 0
call esi
test eax, eax
je 0x4618b3
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccc70]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
jmp 0x4618b3
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x461928
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 0xa0
push 0x7e
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c9e20
push 0x4c018c
push 0
call esi
test eax, eax
je 0x461928
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccb20]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
sub esp, 8
lea ecx, [ebp - 0x28]
push dword [ebp - 0x308]
push dword [ebp - 0x2f8]
call fcn.00402130
mov dword [ebp - 0x2f0], eax
mov esi, dword [eax + 4]
mov byte [eax + 8], 0
test esi, esi
jne 0x46196b
mov ecx, dword [eax]
test ecx, ecx
je 0x461968
cmp word [ecx], si
je 0x461968
nop dword [eax + eax]
inc esi
cmp word [ecx + esi*2], 0
jne 0x461960
mov dword [eax + 4], esi
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x461970
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [ebp - 0x2f0]
mov edx, eax
mov edi, dword [ebp - 0x31c]
add esp, 4
mov dword [ebp - 0x2ec], edx
mov dword [ebp - 0x2f4], edi
mov eax, dword [ecx]
mov dword [ebp - 0x2e4], eax
test eax, eax
je 0x461a01
movzx ecx, word [eax]
mov eax, ecx
mov dword [ebp - 0x30c], eax
mov eax, edi
mov dword [ebp - 0x2f4], eax
test cx, cx
je 0x461a01
mov edi, dword [ebp - 0x2e4]
sub edi, edx
movzx ecx, cx
mov dword [ebp - 0x2f4], eax
nop dword [eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x4619f0
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 0x461a10
mov ecx, dword [ebp - 0x2f0]
xor eax, eax
mov edi, dword [ebp - 0x304]
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x461a47
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x2f0]
add esp, 4
mov eax, dword [ebp - 0x2ec]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov byte [ecx + 8], 1
test eax, eax
jne 0x461a74
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x2f0]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
mov esi, dword [ecx]
mov byte [ecx + 8], 1
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
jne 0x461a9b
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [ebp - 0x32c], 0
jmp 0x461b11
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 0x14
push 0x50
push 0x7e
and eax, 1
push 0xbe
shl eax, 0x11
add eax, 0x50800302
push eax
push esi
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
push 0x4c018c
push 0
call esi
test eax, eax
jne 0x461ae8
mov dword [ebp - 0x32c], eax
jmp 0x461b11
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccc80]
mov dword [ebp - 0x32c], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x461b89
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 0xa0
push 0x95
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c9e50
push 0x4c018c
push 0
call esi
test eax, eax
je 0x461b89
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccb30]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
mov ecx, dword [ebp - 0x310]
sub esp, 8
sub ecx, dword [ebp - 0x2f8]
mov eax, dword [ebp - 0x314]
sbb eax, dword [ebp - 0x308]
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00402130
mov esi, eax
mov dword [ebp - 0x300], esi
mov eax, dword [esi + 4]
mov byte [esi + 8], 0
test eax, eax
jne 0x461bdb
mov ecx, dword [esi]
test ecx, ecx
je 0x461bd8
cmp word [ecx], ax
je 0x461bd8
nop dword [eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x461bd0
mov dword [esi + 4], eax
xor ecx, ecx
nop dword [eax]
inc ecx
cmp word [ecx*2 + 0x4bffa0], 0
jne 0x461be0
add eax, ecx
mov edx, 2
mov dword [ebp - 0x2fc], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [esi]
add esp, 4
mov esi, dword [ebp - 0x2f4]
mov edx, eax
mov dword [ebp - 0x320], eax
mov dword [ebp - 0x2e4], ecx
mov dword [ebp - 0x2f8], esi
test ecx, ecx
je 0x461c77
movzx ecx, word [ecx]
mov esi, ecx
mov dword [ebp - 0x30c], esi
mov esi, dword [ebp - 0x2f4]
mov dword [ebp - 0x2f8], esi
test cx, cx
je 0x461c77
mov edi, dword [ebp - 0x2e4]
sub edi, eax
mov dword [ebp - 0x2f8], esi
mov eax, ecx
movzx ecx, ax
nop dword [eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x461c60
mov edi, dword [ebp - 0x304]
mov esi, 0x4bffa0
mov ecx, 0x20
sub esi, edx
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [esi + edx]
mov ecx, eax
test ax, ax
jne 0x461c83
mov ecx, dword [ebp - 0x300]
xor eax, eax
mov esi, dword [ebp - 0x2f8]
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x461cba
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x300]
add esp, 4
mov edx, dword [ebp - 0x320]
mov eax, dword [ebp - 0x2fc]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov byte [ecx + 8], 1
test edx, edx
jne 0x461ced
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x300]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
mov eax, dword [ecx]
mov byte [ecx + 8], 1
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2e4], eax
call fcn.00416d40
test al, al
jne 0x461d14
mov dword [ebp - 0x300], 0
jmp 0x461d90
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 0x14
push 0x50
push 0x95
and eax, 1
push 0xbe
shl eax, 0x11
add eax, 0x50800302
push eax
push dword [ebp - 0x2e4]
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
jne 0x461d67
mov dword [ebp - 0x300], eax
jmp 0x461d90
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccc90]
mov dword [ebp - 0x300], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
cmp dword [ebp - 0x90], 0
je 0x461e21
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x461e21
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 0x8c
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 0x461e21
push eax
push 3
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccea0]
mov dword [ebp - 0x31c], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x461e2b
mov dword [ebp - 0x31c], 0
sub esp, 8
lea ecx, [ebp - 0x2c0]
push 0x4c4258
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0x90], 0
je 0x461ed1
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x461ed1
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 0x8c
and eax, 1
push 0x1ae
shl eax, 0x11
add eax, 0x50010000
push eax
push 0x4c9e74
push 0x4c019c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x461ed1
push eax
push 3
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccf20]
mov dword [ebp - 0x2ec], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x461edb
mov dword [ebp - 0x2ec], 0
sub esp, 8
lea ecx, [ebp - 0x2c0]
push 0x4c9e8c
push 0xffffffffffffffff
call fcn.00415120
mov eax, 0x1b
mov byte [ebp - 0x1c], 1
mov word [ebp - 0x1a], ax
mov eax, dword [ebp - 0x31c]
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x461f15
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, edi
call fcn.004284d0
test eax, eax
je 0x4628ab
mov eax, dword [ebp - 0x310]
xorps xmm1, xmm1
sub eax, dword [ebp - 0x330]
mov dword [ebp - 0x30c], eax
mov eax, dword [ebp - 0x314]
sbb eax, dword [ebp - 0x334]
mov dword [ebp - 0x320], eax
nop dword [eax]
nop word [eax + eax]
mov eax, dword [edi + 0x22c]
cmp eax, 0xfffffffa
je 0x462924
lea ecx, [ebp - 0x2c0]
cmp dword [edi + 0x25c], ecx
jne 0x462891
cmp eax, dword [ebp - 0x31c]
je 0x462924
cmp eax, esi
jne 0x462409
mov ecx, dword [ebp - 0x284]
mov edx, esi
cmp esi, 0xffffffff
jne 0x461fca
mov edx, dword [ebp - 0x280]
jmp 0x461fe5
test ecx, ecx
je 0x461ffd
cmp esi, 1
jl 0x461ffd
cmp esi, dword [ebp - 0x280]
jg 0x461ffd
lea eax, [esi + esi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x461ffd
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 0x461fff
xor eax, eax
push dword [ebp - 0x320]
cdq
push dword [ebp - 0x30c]
push edx
push eax
call fcn.0049a7b0
mov edi, eax
mov ecx, edx
mov edx, 0xe147ae15
mov dword [ebp - 0x2f0], edi
mul edx
mov dword [ebp - 0x308], ecx
mov dword [ebp - 0x2e8], eax
mov esi, edx
mov eax, edi
mov edx, 0x47ae147a
mul edx
mov edi, eax
mov dword [ebp - 0x2fc], edx
mov eax, ecx
mov ecx, 0xe147ae15
mul ecx
mov ecx, eax
mov dword [ebp - 0x2e4], edx
mov eax, dword [ebp - 0x308]
mov edx, 0x47ae147a
mul edx
add ecx, esi
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2f4], edx
mov edx, dword [ebp - 0x2e4]
adc edx, 0
add edi, ecx
mov ecx, dword [ebp - 0x2fc]
adc ecx, 0
mov dword [ebp - 0x2e8], edi
mov edi, dword [ebp - 0x308]
xor eax, eax
add edx, ecx
mov ecx, dword [ebp - 0x2c4]
adc eax, eax
add ecx, edx
mov edx, dword [ebp - 0x2f4]
adc edx, eax
mov eax, dword [ebp - 0x2f0]
sub eax, ecx
sbb edi, edx
shrd eax, edi, 1
shr edi, 1
add eax, ecx
adc edi, edx
shrd eax, edi, 6
shr edi, 6
add eax, dword [ebp - 0x330]
mov dword [ebp - 0x2f0], eax
mov ecx, eax
adc edi, dword [ebp - 0x334]
mov eax, edi
mov dword [ebp - 0x308], 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 0x462108
push 2
call fcn.0048a02b
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
push 0
push dword [esi]
lea ecx, [ebp - 0x2c0]
mov byte [esi + 8], 1
push dword [ebp - 0x328]
call fcn.00414a80
sub esp, 8
lea ecx, [ebp - 0x28]
push edi
push dword [ebp - 0x2f0]
call fcn.00402130
mov edi, eax
mov esi, dword [edi + 4]
mov byte [edi + 8], 0
test esi, esi
jne 0x46215b
mov eax, dword [edi]
test eax, eax
je 0x462158
cmp word [eax], si
je 0x462158
nop dword [eax + eax]
inc esi
cmp word [eax + esi*2], 0
jne 0x462150
mov dword [edi + 4], esi
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x462160
add esi, eax
xor ecx, ecx
mov edx, 2
mov dword [ebp - 0x2c4], esi
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [edi]
add esp, 4
mov dword [ebp - 0x2fc], eax
mov edx, eax
mov eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x2e4], ecx
mov dword [ebp - 0x2f4], eax
test ecx, ecx
je 0x4621f1
movzx ecx, word [ecx]
mov dword [ebp - 0x2f4], eax
mov esi, ecx
mov dword [ebp - 0x2f8], esi
test cx, cx
je 0x4621f1
mov ecx, dword [ebp - 0x2e4]
sub ecx, edx
movzx esi, si
mov dword [ebp - 0x2f4], eax
nop word [eax + eax]
mov word [edx], si
add edx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x4621e0
mov esi, 0x4bffa0
mov ecx, 0x20
sub esi, edx
nop dword [eax]
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [edx + esi]
mov ecx, eax
test ax, ax
jne 0x462200
mov esi, dword [ebp - 0x2c4]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x46222b
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2fc]
mov dword [edi], eax
mov dword [edi + 4], esi
mov byte [edi + 8], 1
test eax, eax
jne 0x462252
push 2
call fcn.0048a02b
add esp, 4
mov dword [edi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [edi + 4], ecx
push 0
push dword [edi]
lea ecx, [ebp - 0x2c0]
mov byte [edi + 8], 1
push dword [ebp - 0x32c]
call fcn.00414a80
mov ecx, dword [ebp - 0x310]
sub esp, 8
sub ecx, dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x314]
sbb eax, dword [ebp - 0x308]
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00402130
mov edi, eax
mov esi, dword [edi + 4]
mov byte [edi + 8], 0
test esi, esi
jne 0x4622b3
mov eax, dword [edi]
test eax, eax
je 0x4622b0
cmp word [eax], si
je 0x4622b0
inc esi
cmp word [eax + esi*2], 0
jne 0x4622a8
mov dword [edi + 4], esi
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x4622c0
add esi, eax
xor ecx, ecx
mov edx, 2
mov dword [ebp - 0x2f0], esi
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [edi]
add esp, 4
mov dword [ebp - 0x2fc], eax
mov edx, eax
mov eax, dword [ebp - 0x2f4]
mov dword [ebp - 0x2e4], ecx
mov dword [ebp - 0x2f8], eax
test ecx, ecx
je 0x462366
movzx ecx, word [ecx]
mov eax, ecx
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x2f4]
mov dword [ebp - 0x2f8], eax
test cx, cx
je 0x462366
mov eax, dword [ebp - 0x2c4]
mov ecx, dword [ebp - 0x2e4]
movzx eax, ax
sub ecx, edx
mov dword [ebp - 0x2e4], eax
mov eax, dword [ebp - 0x2f4]
mov esi, dword [ebp - 0x2e4]
mov dword [ebp - 0x2f8], eax
mov word [edx], si
add edx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x462355
mov esi, 0x4bffa0
mov ecx, 0x20
sub esi, edx
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [edx + esi]
mov ecx, eax
test ax, ax
jne 0x462372
mov esi, dword [ebp - 0x2f0]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
test eax, eax
je 0x46239d
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2fc]
mov dword [edi], eax
mov dword [edi + 4], esi
mov byte [edi + 8], 1
test eax, eax
jne 0x4623c4
push 2
call fcn.0048a02b
add esp, 4
mov dword [edi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [edi + 4], ecx
push 0
push dword [edi]
lea ecx, [ebp - 0x2c0]
mov byte [edi + 8], 1
push dword [ebp - 0x300]
call fcn.00414a80
mov edi, dword [ebp - 0x304]
lea esi, [edi + 0x598]
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.0049aa80
divsd xmm0, qword [esi + 0x10]
movsd qword [esi + 8], xmm0
jmp 0x462891
cmp eax, 0xffffffb4
jne 0x46282f
mov eax, dword [ebp - 0x328]
cmp dword [edi + 0x238], eax
jne 0x46282f
movsd xmm0, qword [edi + 0x5a0]
lea ecx, [edi + 0x598]
ucomisd xmm0, xmm1
movsd qword [ebp - 0x2e8], xmm0
lahf
test ah, 0x44
jnp 0x46282f
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [edi + 0x59c]
mov ecx, dword [edi + 0x598]
call fcn.0049aa80
divsd xmm0, qword [edi + 0x5a8]
subsd xmm0, qword [ebp - 0x2e8]
comisd xmm0, xmmword [0x4cc7b0]
jbe 0x46282f
push dword [ebp - 0x328]
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov dword [ebp - 0x2e4], eax
test eax, eax
mov eax, dword [ebp - 0x28]
jne 0x4624eb
test eax, eax
je 0x4624a9
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4624e3
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 0x4624d0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x462508
test eax, eax
je 0x4624f8
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00401fd0
mov ecx, edx
shld ecx, eax, 0x14
push ecx
push dword [ebp - 0x320]
shl eax, 0x14
push dword [ebp - 0x30c]
mov dword [ebp - 0x2e4], ecx
push ecx
push eax
push esi
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2c4], eax
call fcn.00415380
sub esp, 8
lea ecx, [ebp - 0x28]
push dword [ebp - 0x2e4]
push dword [ebp - 0x2c4]
call fcn.00402130
mov dword [ebp - 0x2f0], eax
mov esi, dword [eax + 4]
mov byte [eax + 8], 0
test esi, esi
jne 0x462582
mov ecx, dword [eax]
test ecx, ecx
je 0x46257f
cmp word [ecx], si
je 0x46257f
inc esi
cmp word [ecx + esi*2], 0
jne 0x462577
mov dword [eax + 4], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x462584
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [ebp - 0x2f0]
mov edx, eax
add esp, 4
mov dword [ebp - 0x2fc], edx
mov eax, dword [ecx]
mov dword [ebp - 0x308], eax
cmp dword [ebp - 0x308], 0
mov eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x2f4], eax
je 0x462617
mov ecx, dword [ebp - 0x308]
mov dword [ebp - 0x2f4], eax
movzx ecx, word [ecx]
mov edi, ecx
mov dword [ebp - 0x2f8], edi
test cx, cx
je 0x462617
mov ecx, dword [ebp - 0x308]
sub ecx, edx
movzx edi, di
mov dword [ebp - 0x2f4], eax
mov word [edx], di
add edx, 2
movzx eax, word [ecx + edx]
mov edi, eax
test ax, ax
jne 0x462606
mov ecx, 0x4bffa0
mov edi, 0x20
sub ecx, edx
mov word [edx], di
lea edx, [edx + 2]
movzx eax, word [ecx + edx]
mov edi, eax
test ax, ax
jne 0x462623
mov ecx, dword [ebp - 0x2f0]
xor eax, eax
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x462654
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x2f0]
add esp, 4
mov eax, dword [ebp - 0x2fc]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov byte [ecx + 8], 1
test eax, eax
jne 0x462681
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x2f0]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
push 0
push dword [ecx]
mov byte [ecx + 8], 1
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x32c]
call fcn.00414a80
mov ecx, dword [ebp - 0x310]
sub esp, 8
sub ecx, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x314]
sbb eax, dword [ebp - 0x2e4]
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00402130
mov dword [ebp - 0x2f0], eax
mov esi, dword [eax + 4]
mov byte [eax + 8], 0
test esi, esi
jne 0x4626eb
mov ecx, dword [eax]
test ecx, ecx
je 0x4626e8
cmp word [ecx], si
je 0x4626e8
nop dword [eax + eax]
inc esi
cmp word [ecx + esi*2], 0
jne 0x4626e0
mov dword [eax + 4], esi
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bffa0], 0
jne 0x4626f0
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [ebp - 0x2f0]
add esp, 4
mov dword [ebp - 0x2fc], eax
mov edx, dword [ecx]
mov dword [ebp - 0x2e4], edx
mov edx, eax
mov eax, dword [ebp - 0x2f4]
mov dword [ebp - 0x2f8], eax
mov eax, dword [ebp - 0x2e4]
test eax, eax
je 0x4627a1
movzx ecx, word [eax]
mov eax, ecx
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x2f4]
mov dword [ebp - 0x2f8], eax
test cx, cx
je 0x4627a1
mov eax, dword [ebp - 0x2c4]
mov ecx, dword [ebp - 0x2e4]
movzx eax, ax
sub ecx, edx
mov dword [ebp - 0x2e4], eax
mov eax, dword [ebp - 0x2f4]
mov edi, dword [ebp - 0x2e4]
mov dword [ebp - 0x2f8], eax
nop dword [eax + eax]
mov word [edx], di
add edx, 2
movzx eax, word [edx + ecx]
mov edi, eax
test ax, ax
jne 0x462790
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 0x4627b0
mov ecx, dword [ebp - 0x2f0]
xor eax, eax
mov edi, dword [ebp - 0x304]
mov word [edx], ax
mov eax, dword [ecx]
test eax, eax
je 0x4627e7
push eax
call fcn.00489c73
mov ecx, dword [ebp - 0x2f0]
add esp, 4
mov eax, dword [ebp - 0x2fc]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov byte [ecx + 8], 1
test eax, eax
jne 0x462814
push 2
call fcn.0048a02b
mov ecx, dword [ebp - 0x2f0]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
push 0
push dword [ecx]
mov byte [ecx + 8], 1
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x300]
call fcn.00414a80
jmp 0x462891
mov eax, dword [ebp - 0x2ec]
cmp dword [edi + 0x22c], eax
jne 0x462891
push 1
push 0
lea ecx, [ebp - 0x2c0]
call fcn.0040db40
nop dword [eax]
push 1
mov ecx, edi
call fcn.004284d0
test eax, eax
jne 0x462850
push ecx
push 0x1c2
push 0x96
lea eax, [edi + 0x2a8]
mov ecx, edi
push eax
push 1
push 0x4c9ec0
call fcn.00432b40
cmp eax, 1
je 0x4628ab
push 1
push 5
lea ecx, [ebp - 0x2c0]
call fcn.0040db40
push 0
mov ecx, edi
call fcn.004284d0
mov esi, dword [ebp - 0x2f8]
xorps xmm1, xmm1
test eax, eax
jne 0x461f80
push 3
push dword [ebp - 0x338]
lea ecx, [edi + 0x2a8]
mov dword [ebp - 0x2e0], edi
push dword [edi + 0xbc]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x46292c
test eax, eax
je 0x4628e0
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x462916
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 0x462903
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
jmp 0x462941
or edi, 0xffffffff
jmp 0x46381b
test eax, eax
je 0x462939
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
test esi, esi
je 0x462970
test eax, eax
jne 0x46295f
cmp word [esi], ax
je 0x46295a
inc eax
cmp word [esi + eax*2], 0
jne 0x462952
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x462970
push esi
mov byte [ebp - 0x20], 1
call fcn.0048ddfc
add esp, 4
jmp 0x462976
mov byte [ebp - 0x20], 0
xor eax, eax
push 4
push dword [ebp - 0x324]
lea ecx, [edi + 0x2a8]
mov dword [ebp - 0x2dc], eax
push dword [edi + 0xd8]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x4629f1
test eax, eax
je 0x4629ab
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4629e3
nop
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 0x4629d0
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
jmp 0x462a06
test eax, eax
je 0x4629fe
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
test esi, esi
je 0x462a35
test eax, eax
jne 0x462a24
cmp word [esi], ax
je 0x462a1f
inc eax
cmp word [esi + eax*2], 0
jne 0x462a17
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x462a35
push esi
mov byte [ebp - 0x20], 1
call fcn.0048ddfc
add esp, 4
jmp 0x462a3b
mov byte [ebp - 0x20], 0
xor eax, eax
push dword [ebp - 0x328]
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2d8], eax
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x462aab
test eax, eax
je 0x462a68
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x462aa3
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 0x462a90
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x462ac2
test eax, eax
je 0x462ab8
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00401fd0
mov ecx, dword [ebp - 0x314]
shld edx, eax, 0x14
shl eax, 0x14
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2cc], edx
cmp edx, ecx
jb 0x462b07
ja 0x462af5
cmp eax, dword [ebp - 0x310]
jbe 0x462b07
mov eax, dword [ebp - 0x310]
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2cc], ecx
lea ecx, [ebp - 0x2c0]
call fcn.0040c540
push dword [ebp - 0x2d8]
lea ecx, [ebp - 0x34]
call fcn.00401e50
mov esi, dword [ebp - 0x28]
test esi, esi
jne 0x462b3f
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x34]
mov byte [ebp - 0x20], 1
mov dword [ebp - 0x318], eax
test eax, eax
jne 0x462b6b
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x318], eax
xor ecx, ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ecx
mov word [eax], cx
push dword [ebp - 0x2dc]
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x2c], 1
call fcn.00401e50
mov edx, dword [ebp - 0x318]
mov dword [ebp - 0x2e4], eax
mov dword [ebp - 0x2fc], edx
mov ecx, dword [eax]
mov dword [ebp - 0x300], ecx
xor ecx, ecx
mov dword [eax], 0
mov byte [eax + 8], 0
mov dword [eax + 4], 0
nop word [eax + eax]
inc ecx
cmp word [ecx*2 + 0x4c9f20], 0
jne 0x462bb0
test edx, edx
je 0x462bd1
xor eax, eax
cmp word [edx], ax
je 0x462bcf
inc eax
cmp word [edx + eax*2], 0
jne 0x462bc7
add ecx, eax
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8398], 0
jne 0x462bd3
add ecx, eax
test esi, esi
je 0x462bfa
xor eax, eax
cmp word [esi], ax
je 0x462bf8
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x462bf0
add ecx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c439c], 0
jne 0x462c00
add ecx, eax
mov edx, 2
mov dword [ebp - 0x2ec], ecx
lea eax, [ecx + 1]
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, dword [ebp - 0x2e4]
add esp, 4
mov dword [ebp - 0x2c4], eax
mov edx, eax
mov ecx, dword [ecx]
mov dword [ebp - 0x30c], ecx
test ecx, ecx
je 0x462c81
movzx ecx, word [ecx]
mov edi, ecx
mov dword [ebp - 0x320], edi
test cx, cx
je 0x462c81
mov edi, dword [ebp - 0x30c]
sub edi, eax
mov eax, ecx
movzx ecx, ax
nop word [eax + eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x462c70
mov edi, 0x4c9f20
mov ecx, 0x50
sub edi, edx
nop dword [eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x462c90
mov eax, dword [ebp - 0x318]
test eax, eax
je 0x462cd1
movzx eax, word [eax]
mov ecx, eax
test ax, ax
je 0x462cd1
mov edi, dword [ebp - 0x2fc]
nop dword [eax + eax]
mov word [edx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
add edx, 2
test ax, ax
jne 0x462cc0
mov eax, 0x20
mov edi, 0x4c8398
nop dword [eax + eax]
mov word [edx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
add edx, 2
test ax, ax
jne 0x462ce0
test esi, esi
je 0x462d11
movzx eax, word [esi]
mov ecx, eax
test ax, ax
je 0x462d11
nop
mov word [edx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add edx, 2
test ax, ax
jne 0x462d00
mov eax, 0x2e
mov edi, 0x4c439c
nop dword [eax + eax]
mov word [edx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
lea edx, [edx + 2]
test ax, ax
jne 0x462d20
mov esi, dword [ebp - 0x2e4]
xor eax, eax
mov edi, dword [ebp - 0x304]
mov word [edx], ax
mov eax, dword [esi]
test eax, eax
je 0x462d51
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x2c4]
mov dword [esi], eax
mov eax, dword [ebp - 0x2ec]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x300]
mov byte [esi + 8], 1
test eax, eax
je 0x462d79
push eax
call fcn.00489c73
add esp, 4
mov edx, dword [ebp - 0x28]
test edx, edx
jne 0x462d98
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
sub esp, 8
mov byte [ebp - 0x20], 1
lea eax, [edi + 0x2a8]
lea ecx, [edi + 0x5b0]
push 0
push 0xffffffffffffffb0
sub esp, 0x10
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 - 0x2e0]
push eax
push 0x46fd00
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 - 0x2e4], esi
mov dword [ebp - 0x2c4], esi
mov byte [ebp - 4], 0xa
test esi, esi
je 0x462e44
cmp esi, eax
je 0x462e44
push 0
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x462e44
push 0
mov ecx, edi
call fcn.004284d0
cmp dword [edi], 0
jne 0x462e03
cmp dword [edi + 0x22c], 0xfffffffa
jne 0x462e03
push 0x4c2750
push 0xffffffffffffffb0
lea ecx, [edi + 0x5b0]
mov dword [edi], 1
call fcn.0041a070
jmp 0x462e03
mov eax, dword [edi + 0x510]
cmp eax, 0xffffffff
je 0x462e6e
test eax, eax
je 0x462e6e
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 + 0x168]
call fcn.0041b0e0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x462e9e
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
test eax, eax
jne 0x462f22
mov byte [ebp - 0x20], al
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c9f68], 0
jne 0x462ec0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x462f17
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c9f68]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x462f00
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x463738
cmp dword [edi], 0
je 0x462f92
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8d48], 0
jne 0x462f30
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x462f17
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c8d48]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x462f70
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x463738
cmp eax, 1
jne 0x462ffc
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc498], 0
jne 0x462fa0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4633e7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc498]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x462fe0
jmp 0x4633e7
cmp eax, 2
jne 0x46306c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc4cc], 0
jne 0x463010
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4633e7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc4cc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x463050
jmp 0x4633e7
cmp eax, 3
jne 0x4630dc
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc4f4], 0
jne 0x463080
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4633e7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc4f4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x4630c0
jmp 0x4633e7
cmp eax, 4
jne 0x46314c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc520], 0
jne 0x4630f0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4633e7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc520]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x463130
jmp 0x4633e7
cmp eax, 5
jne 0x4631bc
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc544], 0
jne 0x463160
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4633e7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc544]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x4631a0
jmp 0x4633e7
cmp eax, 6
jne 0x46322c
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc56c], 0
jne 0x4631d0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4633e7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc56c]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x463210
jmp 0x4633e7
cmp eax, 0x1001
jne 0x46329c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc598], 0
jne 0x463240
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4633e7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc598]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x463280
jmp 0x4633e7
cmp eax, 0x9c41
jne 0x46330c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc5c0], 0
jne 0x4632b0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4633e7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc5c0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x4632f0
jmp 0x4633e7
cmp eax, 0x9c42
jne 0x463379
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc5e0], 0
jne 0x463320
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4633e7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cc5e0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x463360
jmp 0x4633e7
cmp eax, 0x9c44
jne 0x463414
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc658], 0
jne 0x463390
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x4633e7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cc658]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x4633d0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x20], 1
cmp dword [ebp - 0x28], ecx
jne 0x46363d
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x24], ecx
jmp 0x46363d
cmp eax, 0xffffffff
jne 0x46347c
mov byte [ebp - 0x20], 0
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x4c8d88], 0
jne 0x463420
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x463637
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8d88]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x463460
jmp 0x463637
cmp eax, 0xfffffffe
jne 0x4634ec
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c9fd0], 0
jne 0x463490
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x463637
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c9fd0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x4634d0
jmp 0x463637
cmp eax, 0xa418
jne 0x46355c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4ca018], 0
jne 0x463500
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x463637
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4ca018]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x463540
jmp 0x463637
cmp eax, 0xa419
jne 0x4635c9
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4ca090], 0
jne 0x463570
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x463637
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4ca090]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x4635b0
jmp 0x463637
cmp eax, 0xa41b
jne 0x46363d
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4ca110], 0
jne 0x4635e0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x463637
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4ca110]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x463620
xor ecx, ecx
mov word [edx + eax*2], cx
cmp dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 0
jne 0x463664
xor ecx, ecx
cmp dword [ebp - 0x28], ecx
je 0x463661
mov eax, dword [ebp - 0x28]
cmp word [eax], cx
je 0x463661
mov eax, dword [ebp - 0x28]
inc ecx
cmp word [eax + ecx*2], 0
jne 0x463656
mov dword [ebp - 0x24], ecx
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp word [ecx*2 + 0x4ca188], 0
jne 0x463670
mov eax, dword [ebp - 0x24]
mov edx, 2
add eax, ecx
xor ecx, ecx
mov dword [ebp - 0x2fc], eax
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x28]
mov esi, 0x4ca188
add esp, 4
mov dword [ebp - 0x320], eax
mov ecx, eax
mov edi, 0x54
sub esi, eax
nop dword [eax + eax]
mov word [ecx], di
add ecx, 2
movzx eax, word [ecx + esi]
mov edi, eax
test ax, ax
jne 0x4636c0
cmp dword [ebp - 0x28], 0
mov esi, dword [ebp - 0x2e4]
mov edi, dword [ebp - 0x304]
je 0x463711
movzx eax, word [edx]
mov esi, eax
mov dword [ebp - 0x30c], esi
mov esi, dword [ebp - 0x2e4]
test ax, ax
je 0x463711
movzx eax, ax
nop dword [eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x463700
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x463726
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x320]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2fc]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 1
jne 0x463757
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x20], 1
mov dword [ebp - 0x2e4], eax
test eax, eax
jne 0x463783
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x24], ecx
push 0
push 0x4c2b50
push ecx
push eax
push dword [ebp - 0x28]
lea ecx, [edi + 0x5b0]
mov byte [ebp - 0x20], 1
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 0x4637ee
nop dword [eax + eax]
mov ecx, dword [edi + 0x22c]
cmp ecx, 0xfffffffa
je 0x4637ee
lea eax, [edi + 0x628]
cmp dword [edi + 0x25c], eax
jne 0x4637e1
cmp ecx, dword [edi + 0x5b8]
je 0x4637ee
push 0
mov ecx, edi
call fcn.004284d0
test eax, eax
jne 0x4637c0
push dword [ebp - 0x338]
mov ecx, edi
call fcn.0042cd20
lea ecx, [edi + 0x5b0]
call fcn.00419810
mov edi, 1
cmp esi, 0xffffffff
je 0x46381b
test esi, esi
je 0x46381b
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 0xb
call fcn.0040c540
mov eax, dword [ebp - 0x284]
test eax, eax
je 0x46383d
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1b0]
test eax, eax
je 0x463850
push ecx
push 0x1c2
push 0x96
lea eax, [edi + 0x2a8]
push eax
push 0
push 0x4c3bf0
mov ecx, edi
call fcn.00432b40
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00489c65
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret