Function at 0x45cfa0
Capabilities:
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 0x49ed61
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x318
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 - 0x2fc], esi
mov eax, dword [esi + 0xbc]
lea ecx, [esi + 0x2e8]
cmp eax, 0xffffffff
jne 0x45cffc
mov eax, dword [ecx]
mov edx, dword [esi + 0x2e4]
test edx, edx
je 0x45f29f
cmp eax, 1
jl 0x45f29f
cmp eax, dword [ecx]
jg 0x45f29f
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x45f29f
cmp dword [edx + eax*8], 0xf
jne 0x45f29f
push 2
push 0xffffffffffffffff
push 0x100c
push dword [edx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x328], eax
test eax, eax
js 0x45f29f
push ecx
push dword [esi + 0xd8]
lea ecx, [esi + 0x2a8]
call fcn.00416520
mov edi, eax
lea ecx, [esi + 0x2a8]
test edi, edi
jns 0x45d08a
push ecx
push 0x1c2
push 0x96
push ecx
push 0
push 0x4c93b8
jmp 0x45f2b8
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 edi
mov byte [ebp - 4], 1
push dword [esi + 0xd8]
call fcn.00416470
xor esi, esi
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x30], esi
mov edx, 1
test eax, eax
jne 0x45d11f
mov byte [ebp - 0x2c], al
xor ecx, ecx
mov eax, edx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
add esp, 4
mov dword [ebp - 0x300], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x34], eax
test eax, eax
je 0x45f242
test esi, esi
jne 0x45d140
cmp word [eax], si
je 0x45d13b
inc esi
cmp word [eax + esi*2], 0
jne 0x45d133
mov dword [ebp - 0x30], esi
test esi, esi
jle 0x45f242
push eax
mov byte [ebp - 0x2c], 1
call fcn.0048e09c
add esp, 4
mov dword [ebp - 0x318], eax
cmp eax, 1
jl 0x45f246
push 0
push edi
mov edi, dword [ebp - 0x2fc]
push dword [edi + 0xd8]
lea ecx, [edi + 0x2a8]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x45d1d0
test eax, eax
je 0x45d192
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45d1c8
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 0x45d1b5
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45d1e7
test eax, eax
je 0x45d1dd
push eax
call fcn.00489f13
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
push 0
push 1
push 1
push 0
push 0x4c1b20
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
lea esi, [edi + 0x2a8]
call fcn.004025a0
test eax, eax
je 0x45d224
push ecx
push 0x1c2
push 0x96
push esi
push 0
push 0x4c9440
mov ecx, edi
jmp 0x45f265
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 ecx, [ebp - 0x58]
movaps xmm0, xmmword [0x4cd010]
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 esi
call fcn.00417480
push dword [edi + 0x4d8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x45d27d
mov edi, dword [edi + 0x4d8]
jmp 0x45d27f
xor edi, edi
push 0x268
lea eax, [ebp - 0x2c0]
push 0
push eax
call fcn.0048ba10
mov esi, dword [ebp - 0x2fc]
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 0xf0
push 0x23a
add esi, 0x22c
lea eax, [ebp - 0x2c0]
push 0x4c94a8
cmovne eax, esi
lea ecx, [ebp - 0x2c0]
push 0x4c3d00
mov dword [ebp - 0x100], eax
call fcn.0040bf80
push ecx
push 0xc
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff000000
push 0xf0
push 0x23a
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 5
call fcn.004167f0
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x304], eax
test edi, edi
je 0x45d3b1
mov edi, dword [ebp - 0x2fc]
xor esi, esi
add edi, 0x2f8
mov eax, dword [edi]
test eax, eax
je 0x45d38f
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x45d38f
inc esi
add edi, 4
cmp esi, 0x30
jl 0x45d373
jmp 0x45d3b1
mov ecx, dword [ebp - 0x2fc]
mov eax, dword [ebp - 0x304]
mov dword [ecx + esi*4 + 0x2f8], eax
inc esi
cmp esi, dword [ecx + 0x2f4]
jle 0x45d3b1
mov dword [ecx + 0x2f4], esi
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
nop
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x45d3f0
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x142]
push 0x20
push eax
call fcn.0048d1b3
add esp, 0x10
mov dword [ebp - 0xd0], 0x1400
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
mov edi, dword [sym.imp.USER32.dll_CreateWindowExW]
test al, al
je 0x45d499
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 0x4c94d0
push 0x4c018c
push 0
call edi
test eax, eax
je 0x45d499
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
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x45d4c3
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x142]
push 0x20
push eax
call fcn.0048d1b3
add esp, 0x10
mov dword [ebp - 0xd0], 0x400
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45d566
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 0xe6
push 0x4b
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c8898
push 0x4c018c
push 0
call edi
test eax, eax
je 0x45d566
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccb80]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
mov eax, dword [ebp - 0x300]
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x2c], 0
xor esi, esi
nop dword [eax + eax]
inc esi
cmp word [esi*2 + 0x4c88e8], 0
jne 0x45d580
xor ecx, ecx
mov dword [ebp - 0x30], esi
lea eax, [esi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
add esp, 4
mov dword [ebp - 0x34], eax
test esi, esi
jle 0x45d5d9
mov edi, 0x4c88e8
mov ecx, eax
sub edi, eax
mov edx, esi
nop dword [eax]
mov ax, word [ecx + edi]
lea ecx, [ecx + 2]
mov word [ecx - 2], ax
sub edx, 1
jne 0x45d5c0
mov eax, dword [ebp - 0x34]
mov edi, dword [sym.imp.USER32.dll_CreateWindowExW]
sub esp, 0x10
mov byte [ebp - 0x2c], 1
xor ecx, ecx
mov word [eax + esi*2], cx
lea ecx, [ebp - 0x2c0]
push 0x5a
push 0x48
push 0xff
push eax
call fcn.00411c70
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x308], eax
call fcn.00416d40
test al, al
je 0x45d676
mov ecx, dword [ebp - 0x280]
movzx eax, byte [ebp - 0x78]
inc ecx
push 0
push dword [ebp - 0x1a4]
and eax, 1
push ecx
push dword [ebp - 0x8c]
shl eax, 0x11
push 0x12
push 0x32
push 0x4b
push 0x17c
add eax, 0x50000100
push eax
push 0x4c891c
push 0x4c018c
push 0
call edi
test eax, eax
je 0x45d676
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cc940]
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 0x45d694
mov dword [ebp - 0x314], 0
jmp 0x45d710
test byte [ebp - 0x78], 1
mov eax, 0x50020080
push 0
push dword [ebp - 0x1a4]
mov ecx, 0x50000080
cmovne ecx, eax
mov eax, dword [ebp - 0x280]
inc eax
or ecx, 0x10000
push eax
push dword [ebp - 0x8c]
push 0x14
push 0x78
push 0x49
push 0x1ae
push ecx
push 0
push 0x4c0220
push 0x200
call edi
test eax, eax
jne 0x45d6e7
mov dword [ebp - 0x314], eax
jmp 0x45d710
push eax
push 0xc
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4ccca0]
mov dword [ebp - 0x314], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
cmp dword [ebp - 0x90], 0
je 0x45d79c
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45d79c
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 0xe6
push 0x78
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4c9500
push 0x4c019c
push 0
call edi
test eax, eax
je 0x45d79c
push eax
push 4
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
mov esi, eax
movaps xmm0, xmmword [0x4ccb90]
mov dword [ebp - 0x320], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x45d7a6
mov dword [ebp - 0x320], 0
sub esp, 8
lea ecx, [ebp - 0x2c0]
push 0x4c9548
push 0xffffffffffffffff
call fcn.00415120
lea ecx, [ebp - 0x34]
call fcn.0041e2a0
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x45d7eb
push 2
call fcn.0048a2cb
add esp, 4
mov dword [ebp - 0x300], eax
xor ecx, ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ecx
mov word [eax], cx
sub esp, 0x10
mov byte [ebp - 0x2c], 1
lea ecx, [ebp - 0x2c0]
push 0x5a
push 0x75
push 0xff
push eax
call fcn.00411c70
push 0x40
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x304], eax
call fcn.00414360
cmp dword [ebp - 0x90], 0
je 0x45d8a8
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45d8a8
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 0x78
and eax, 1
push 0x17c
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4c8974
push 0x4c019c
push 0
call edi
test eax, eax
je 0x45d8a8
push eax
push 4
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
mov esi, eax
movaps xmm0, xmmword [0x4cca10]
mov dword [ebp - 0x31c], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x45d8b2
mov dword [ebp - 0x31c], 0
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45d92a
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 0x212
push 0xa0
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c95b8
push 0x4c018c
push 0
call edi
test eax, eax
je 0x45d92a
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccc30]
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
je 0x45d99f
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 0xcd
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4c9638
push 0x4c018c
push 0
call edi
test eax, eax
je 0x45d99f
push eax
push 0xd
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cc960]
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
je 0x45da14
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 0xcd
and eax, 1
push 0x46
shl eax, 0x11
add eax, 0x50010009
push eax
push 0x4c9644
push 0x4c019c
push 0
call edi
test eax, eax
je 0x45da14
push eax
push 0x15
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cca30]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x284]
movups xmmword [eax + ecx*8 + 0x24], xmm0
push 4
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c0]
call fcn.00414360
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
jne 0x45da41
mov dword [ebp - 0x2c4], 0
jmp 0x45dab8
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 0xcd
and eax, 1
push 0xbe
shl eax, 0x11
add eax, 0x50010009
push eax
push 0x4c9664
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x45da8f
mov dword [ebp - 0x2c4], eax
jmp 0x45dab8
push eax
push 0x15
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
movaps xmm0, xmmword [0x4cca40]
mov dword [ebp - 0x2c4], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
cmp dword [ebp - 0x90], 0
je 0x45db41
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45db41
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 0xc8
and eax, 1
push 0x136
shl eax, 0x11
add eax, 0x50010000
push eax
push 0x4c033c
push 0x4c019c
push 0
call edi
test eax, eax
je 0x45db41
push eax
push 3
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
mov esi, eax
movaps xmm0, xmmword [0x4cceb0]
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x45db43
xor esi, esi
sub esp, 8
mov dword [ebp - 0x324], esi
lea ecx, [ebp - 0x2c0]
push 0x4c4260
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0x90], 0
je 0x45dbe7
lea ecx, [ebp - 0x2c0]
call fcn.00416d40
test al, al
je 0x45dbe7
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 0xc8
and eax, 1
push 0x1ae
shl eax, 0x11
add eax, 0x50010000
push eax
push 0x4c9680
push 0x4c019c
push 0
call edi
test eax, eax
je 0x45dbe7
push eax
push 3
lea ecx, [ebp - 0x2c0]
call fcn.00416ab0
mov ecx, dword [ebp - 0x284]
mov edi, eax
movaps xmm0, xmmword [0x4ccf30]
lea edx, [edi + edi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x45dbe9
xor edi, edi
sub esp, 8
mov dword [ebp - 0x310], edi
lea ecx, [ebp - 0x2c0]
push 0x4c9698
push 0xffffffffffffffff
call fcn.00415120
mov eax, 0x1b
mov byte [ebp - 0x1c], 1
mov word [ebp - 0x1a], ax
mov eax, dword [ebp - 0x7c]
mov word [ebp - 0x18], si
test eax, eax
je 0x45dc23
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
mov esi, dword [ebp - 0x2fc]
mov ecx, esi
push 0
call fcn.00428440
test eax, eax
je 0x45de98
mov eax, dword [esi + 0x22c]
cmp eax, 0xfffffffa
je 0x45df71
lea ecx, [ebp - 0x2c0]
cmp dword [esi + 0x25c], ecx
jne 0x45de81
cmp eax, dword [ebp - 0x324]
je 0x45df71
mov ecx, dword [ebp - 0x320]
cmp eax, ecx
jne 0x45dccb
push 4
push ecx
lea ecx, [ebp - 0x2c0]
call fcn.00415560
test eax, eax
mov ecx, 0x40
mov eax, 0x20
cmovne ecx, eax
push ecx
push dword [ebp - 0x304]
lea ecx, [ebp - 0x2c0]
call fcn.00414360
jmp 0x45de81
cmp eax, 0xffffffbf
jne 0x45de25
mov ecx, dword [ebp - 0x308]
cmp dword [esi + 0x238], ecx
jne 0x45de25
push ecx
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov edi, eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30c], edi
test edi, edi
jne 0x45dd55
test eax, eax
je 0x45dd0e
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45dd44
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 0x45dd31
xor ecx, ecx
mov word [edx + eax*2], cx
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x30c], edi
jmp 0x45dd6c
test eax, eax
je 0x45dd62
push eax
call fcn.00489f13
add esp, 4
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
cmp edi, 0x4c80b4
jne 0x45dd7f
mov cl, 1
jmp 0x45de02
test edi, edi
je 0x45de00
mov esi, 0x4c80b4
nop dword [eax]
movzx eax, word [edi]
mov ecx, eax
test ax, ax
jne 0x45dda9
cmp word [esi], ax
jne 0x45ddae
mov esi, dword [ebp - 0x2fc]
mov cl, 1
jmp 0x45de02
cmp ax, word [esi]
je 0x45ddec
xor edx, edx
cmp dx, ax
jne 0x45ddb9
xor edi, edi
jmp 0x45ddc5
push ecx
call fcn.0048e184
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x45ddd5
xor eax, eax
jmp 0x45dde1
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp di, ax
jne 0x45ddfa
mov edi, dword [ebp - 0x30c]
add edi, 2
add esi, 2
mov dword [ebp - 0x30c], edi
jmp 0x45dd90
mov esi, dword [ebp - 0x2fc]
xor cl, cl
test cl, cl
mov eax, 0x48
mov ecx, 0x20
cmovne eax, ecx
lea ecx, [ebp - 0x2c0]
push eax
push dword [ebp - 0x31c]
call fcn.00414360
jmp 0x45de81
cmp eax, edi
jne 0x45de81
push 1
push 0
lea ecx, [ebp - 0x2c0]
call fcn.0040db40
nop dword [eax + eax]
push 1
mov ecx, esi
call fcn.00428440
test eax, eax
jne 0x45de40
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
mov ecx, esi
push eax
push 1
push 0x4c96d0
call fcn.00432ac0
cmp eax, 1
je 0x45de98
push 1
push 5
lea ecx, [ebp - 0x2c0]
call fcn.0040db40
push 0
mov ecx, esi
call fcn.00428440
mov edi, dword [ebp - 0x310]
test eax, eax
jne 0x45dc60
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 0x2ec], 0
mov byte [ebp - 0x2e4], 1
mov dword [ebp - 0x2dc], 0
mov dword [ebp - 0x2e0], 0
mov byte [ebp - 0x2d8], 1
mov dword [ebp - 0x2d0], 0
mov dword [ebp - 0x2d4], 0
mov byte [ebp - 0x2cc], 1
mov dword [ebp - 0x2c8], 0x100
push 3
push dword [ebp - 0x328]
mov byte [ebp - 4], 0xa
lea ecx, [esi + 0x2a8]
push dword [esi + 0xbc]
mov dword [ebp - 0x2f8], esi
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x45df79
test eax, eax
je 0x45df2c
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45df63
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 0x45df50
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
jmp 0x45df8e
or edi, 0xffffffff
jmp 0x45edd4
test eax, eax
je 0x45df86
push eax
call fcn.00489f13
add esp, 4
xor eax, eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
test esi, esi
je 0x45dfbe
test eax, eax
jne 0x45dfad
cmp word [esi], ax
je 0x45dfa8
nop
inc eax
cmp word [esi + eax*2], 0
jne 0x45dfa0
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x45dfbe
push esi
mov byte [ebp - 0x20], 1
call fcn.0048e09c
add esp, 4
jmp 0x45dfc4
mov byte [ebp - 0x20], 0
xor eax, eax
push dword [ebp - 0x308]
mov edi, dword [ebp - 0x318]
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2f0], edi
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x2ec]
test esi, esi
jne 0x45e051
test eax, eax
je 0x45e000
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x2e4], 0
mov dword [ebp - 0x2e8], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2e8]
xor ecx, ecx
mov dword [ebp - 0x2ec], edx
test eax, eax
jle 0x45e049
nop
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2e8]
mov edx, dword [ebp - 0x2ec]
cmp ecx, eax
jl 0x45e030
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45e06e
test eax, eax
je 0x45e05e
push eax
call fcn.00489f13
add esp, 4
mov dword [ebp - 0x2ec], esi
mov dword [ebp - 0x2e8], 0
push dword [ebp - 0x314]
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 0x2e4], 1
call fcn.00415800
mov esi, eax
test esi, esi
jne 0x45e09a
push eax
lea ecx, [ebp - 0x2e0]
call fcn.00401860
jmp 0x45e0c4
mov eax, dword [ebp - 0x2e0]
test eax, eax
je 0x45e0ad
push eax
call fcn.00489f13
add esp, 4
mov dword [ebp - 0x2e0], esi
mov dword [ebp - 0x2dc], 0
mov byte [ebp - 0x2d8], 1
push 4
push dword [ebp - 0x31c]
lea ecx, [ebp - 0x2c0]
call fcn.00415560
movzx ecx, byte [ebp - 0x2c5]
test eax, eax
mov eax, 1
cmovne ecx, eax
push 4
push dword [ebp - 0x320]
mov byte [ebp - 0x2c5], cl
lea ecx, [ebp - 0x2c0]
call fcn.00415560
test eax, eax
je 0x45e1a7
push dword [ebp - 0x304]
lea ecx, [ebp - 0x2c0]
call fcn.00415800
mov esi, eax
mov eax, dword [ebp - 0x2d4]
test esi, esi
jne 0x45e183
test eax, eax
je 0x45e133
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x2cc], 0
mov dword [ebp - 0x2d0], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2d0]
xor ecx, ecx
mov dword [ebp - 0x2d4], edx
test eax, eax
jle 0x45e17b
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2d0]
mov edx, dword [ebp - 0x2d4]
cmp ecx, eax
jl 0x45e162
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45e1a0
test eax, eax
je 0x45e190
push eax
call fcn.00489f13
add esp, 4
mov dword [ebp - 0x2d4], esi
mov dword [ebp - 0x2d0], 0
mov byte [ebp - 0x2cc], 1
push 4
push dword [ebp - 0x2c4]
lea ecx, [ebp - 0x2c0]
call fcn.00415560
movzx ecx, byte [ebp - 0x2c8]
test eax, eax
mov eax, 1
cmovne ecx, eax
mov byte [ebp - 0x2c8], cl
lea ecx, [ebp - 0x2c0]
call fcn.0040c540
push edi
lea ecx, [ebp - 0x34]
call fcn.00401e50
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x304], esi
test esi, esi
jne 0x45e210
push 2
call fcn.0048a2cb
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x304], esi
mov eax, dword [ebp - 0x34]
mov byte [ebp - 0x20], 1
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x45e23c
push 2
call fcn.0048a2cb
add esp, 4
mov dword [ebp - 0x300], eax
xor ecx, ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ecx
mov word [eax], cx
push dword [ebp - 0x2f4]
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x2c], 1
call fcn.00401e50
mov edx, dword [ebp - 0x300]
mov edi, eax
mov dword [ebp - 0x314], edi
xor ecx, ecx
mov dword [ebp - 0x308], 0x4c43a4
mov dword [ebp - 0x318], edx
mov eax, dword [edi]
mov dword [ebp - 0x30c], eax
mov dword [edi], 0
mov byte [edi + 8], 0
mov dword [edi + 4], 0
nop word [eax + eax]
inc ecx
cmp word [ecx*2 + 0x4c9730], 0
jne 0x45e290
test edx, edx
je 0x45e2b1
xor eax, eax
cmp word [edx], ax
je 0x45e2af
inc eax
cmp word [edx + eax*2], 0
jne 0x45e2a7
add ecx, eax
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8390], 0
jne 0x45e2b3
add ecx, eax
test esi, esi
je 0x45e2da
xor eax, eax
cmp word [esi], ax
je 0x45e2d8
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x45e2d0
add ecx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c43a4], 0
jne 0x45e2e0
add ecx, eax
mov edx, 2
mov dword [ebp - 0x310], ecx
lea eax, [ecx + 1]
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edi, dword [edi]
add esp, 4
mov dword [ebp - 0x2c4], eax
mov edx, eax
test edi, edi
je 0x45e341
movzx ecx, word [edi]
test cx, cx
je 0x45e341
sub edi, eax
nop dword [eax + eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x45e330
mov edi, 0x4c9730
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 0x45e350
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45e391
movzx eax, word [eax]
mov ecx, eax
test ax, ax
je 0x45e391
mov esi, dword [ebp - 0x318]
nop dword [eax + eax]
mov word [edx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add edx, 2
test ax, ax
jne 0x45e380
mov eax, 0x20
mov esi, 0x4c8390
nop dword [eax + eax]
mov word [edx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add edx, 2
test ax, ax
jne 0x45e3a0
mov esi, dword [ebp - 0x304]
test esi, esi
je 0x45e3d6
movzx eax, word [esi]
mov ecx, eax
test ax, ax
je 0x45e3d6
mov word [edx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add edx, 2
test ax, ax
jne 0x45e3c5
mov eax, 0x2e
nop dword [eax + eax]
mov word [edx], ax
lea edx, [edx + 2]
mov eax, dword [ebp - 0x308]
add eax, 2
mov dword [ebp - 0x308], eax
movzx eax, word [eax]
test ax, ax
jne 0x45e3e0
mov esi, dword [ebp - 0x314]
xor eax, eax
mov word [edx], ax
mov eax, dword [esi]
test eax, eax
je 0x45e417
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x2c4]
mov dword [esi], eax
mov eax, dword [ebp - 0x310]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x30c]
mov byte [esi + 8], 1
test eax, eax
je 0x45e43f
push eax
call fcn.00489f13
add esp, 4
mov edx, dword [ebp - 0x28]
test edx, edx
jne 0x45e45e
push 2
call fcn.0048a2cb
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
mov edi, dword [ebp - 0x2fc]
push 0
push 0xffffffffffffffb0
sub esp, 0x10
mov byte [ebp - 0x20], 1
lea eax, [edi + 0x2a8]
lea ecx, [edi + 0x5b0]
push eax
push edx
call fcn.004192c0
mov ecx, eax
call fcn.0041a070
push 1
push 5
lea ecx, [eax + 0x78]
call fcn.0040db40
push 0
push 0
lea eax, [ebp - 0x2f8]
push eax
push 0x46fec0
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 - 0x318], esi
mov dword [ebp - 0x2c4], esi
mov byte [ebp - 4], 0xb
test esi, esi
je 0x45e524
cmp esi, eax
je 0x45e524
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
push esi
call edi
cmp eax, 0x102
jne 0x45e51e
mov ecx, dword [ebp - 0x2fc]
push 0
call fcn.00428440
mov ecx, dword [ebp - 0x2fc]
cmp dword [ecx], 0
jne 0x45e4d7
cmp dword [ecx + 0x22c], 0xfffffffa
jne 0x45e4d7
push 0x4c2770
mov dword [ecx], 1
lea ecx, [ecx + 0x5b0]
push 0xffffffffffffffb0
call fcn.0041a070
jmp 0x45e4d7
mov edi, dword [ebp - 0x2fc]
mov eax, dword [edi + 0x510]
cmp eax, 0xffffffff
je 0x45e54e
test eax, eax
je 0x45e54e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x510], 0xffffffff
mov dword [edi + 0x514], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
sub esp, 8
lea ecx, [edi + 0x130]
call fcn.0041b050
sub esp, 8
lea ecx, [edi + 0x168]
call fcn.0041b050
sub esp, 8
lea ecx, [edi + 0x1a0]
call fcn.0041b050
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x45e59a
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
test eax, eax
jne 0x45e612
mov byte [ebp - 0x20], al
inc eax
cmp word [eax*2 + 0x4c9778], 0
jne 0x45e5b2
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45e607
nop dword [eax]
mov ax, word [ecx*2 + 0x4c9778]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45e5f0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ecb8
cmp eax, 0xfffffffd
jne 0x45e682
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c97e0], 0
jne 0x45e621
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45e607
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c97e0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45e660
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ecb8
cmp eax, 0xfffffffc
jne 0x45e6f2
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c9830], 0
jne 0x45e691
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45e607
nop dword [eax]
mov ax, word [ecx*2 + 0x4c9830]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45e6d0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ecb8
cmp dword [edi], 0
je 0x45e762
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c8d40], 0
jne 0x45e701
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45e607
nop dword [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 0x45e740
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ecb8
cmp eax, 1
jne 0x45e7cc
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4cc490], 0
jne 0x45e771
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ebb7
nop dword [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 0x45e7b0
jmp 0x45ebb7
cmp eax, 2
jne 0x45e83c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc4c4], 0
jne 0x45e7e0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ebb7
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 0x45e820
jmp 0x45ebb7
cmp eax, 3
jne 0x45e8ac
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc4ec], 0
jne 0x45e850
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ebb7
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 0x45e890
jmp 0x45ebb7
cmp eax, 4
jne 0x45e91c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc518], 0
jne 0x45e8c0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ebb7
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 0x45e900
jmp 0x45ebb7
cmp eax, 5
jne 0x45e98c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc53c], 0
jne 0x45e930
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ebb7
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 0x45e970
jmp 0x45ebb7
cmp eax, 6
jne 0x45e9fc
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc564], 0
jne 0x45e9a0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ebb7
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 0x45e9e0
jmp 0x45ebb7
cmp eax, 0x1001
jne 0x45ea6c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc590], 0
jne 0x45ea10
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ebb7
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 0x45ea50
jmp 0x45ebb7
cmp eax, 0x9c41
jne 0x45eadc
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc5b8], 0
jne 0x45ea80
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ebb7
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 0x45eac0
jmp 0x45ebb7
cmp eax, 0x9c42
jne 0x45eb4c
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc5d8], 0
jne 0x45eaf0
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ebb7
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 0x45eb30
jmp 0x45ebb7
cmp eax, 0x9c44
jne 0x45ee49
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4cc650], 0
jne 0x45eb60
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45ebb7
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 0x45eba0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x20], 1
cmp dword [ebp - 0x28], ecx
jne 0x45ebdb
push 2
call fcn.0048a2cb
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x24], ecx
mov edi, 2
cmp dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 0
jne 0x45ec0e
xor ecx, ecx
cmp dword [ebp - 0x28], ecx
je 0x45ec0b
mov eax, dword [ebp - 0x28]
cmp word [eax], cx
je 0x45ec0b
nop dword [eax]
mov eax, dword [ebp - 0x28]
inc ecx
cmp word [eax + ecx*2], 0
jne 0x45ec00
mov dword [ebp - 0x24], ecx
xor ecx, ecx
inc ecx
cmp word [ecx*2 + 0x4c9bf8], 0
jne 0x45ec10
mov eax, dword [ebp - 0x24]
add eax, ecx
xor ecx, ecx
mov dword [ebp - 0x308], eax
inc eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, dword [ebp - 0x28]
mov esi, 0x4c9bf8
add esp, 4
mov dword [ebp - 0x304], eax
mov ecx, eax
mov edi, 0x54
sub esi, eax
mov word [ecx], di
add ecx, 2
movzx eax, word [esi + ecx]
mov edi, eax
test ax, ax
jne 0x45ec53
cmp dword [ebp - 0x28], 0
mov esi, dword [ebp - 0x318]
je 0x45ec91
movzx eax, word [edx]
mov edi, eax
test ax, ax
je 0x45ec91
nop word [eax + eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x45ec80
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x45eca6
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x304]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x308]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 1
jne 0x45ecd7
push 2
call fcn.0048a2cb
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x24], ecx
mov edi, dword [ebp - 0x28]
mov byte [ebp - 0x20], 1
test edi, edi
jne 0x45ecf7
push 2
call fcn.0048a2cb
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x24], ecx
push 0
push 0x4c2b70
push ecx
push edi
mov edi, dword [ebp - 0x2fc]
push dword [ebp - 0x28]
mov byte [ebp - 0x20], 1
push 0x64
lea ecx, [edi + 0x5b0]
call fcn.0041a070
mov ecx, eax
call fcn.00419f00
mov ecx, eax
call fcn.0041a380
push 0
mov ecx, edi
call fcn.00428440
test eax, eax
je 0x45ed6e
nop dword [eax]
mov ecx, dword [edi + 0x22c]
cmp ecx, 0xfffffffa
je 0x45ed6e
lea eax, [edi + 0x628]
cmp dword [edi + 0x25c], eax
jne 0x45ed61
cmp ecx, dword [edi + 0x5b8]
je 0x45ed6e
push 0
mov ecx, edi
call fcn.00428440
test eax, eax
jne 0x45ed40
push dword [ebp - 0x328]
mov ecx, edi
call fcn.0042cca0
lea ecx, [edi + 0x5b0]
call fcn.00419810
mov edi, 1
cmp esi, 0xffffffff
je 0x45ed9b
test esi, esi
je 0x45ed9b
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2d4]
test eax, eax
je 0x45edae
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x2e0]
test eax, eax
je 0x45edc1
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x2ec]
test eax, eax
je 0x45edd4
push eax
call fcn.00489f13
add esp, 4
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 0xc
call fcn.0040c540
mov eax, dword [ebp - 0x284]
test eax, eax
je 0x45edf6
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x1b0]
test eax, eax
je 0x45ee09
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x58]
test ecx, ecx
je 0x45ee33
test esi, esi
je 0x45f26d
push dword [ebp - 0x40]
lea eax, [ebp - 0x58]
push dword [ebp - 0x50]
push eax
call fcn.0040c930
call fcn.00403550
test esi, esi
je 0x45f26d
push esi
call fcn.00489f13
add esp, 4
jmp 0x45f26d
cmp eax, 0x9c52
jne 0x45eec2
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c9198], 0
jne 0x45ee60
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edi, 2
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45f1c7
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c9198]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45eea0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ebe0
cmp eax, 0xa41a
jne 0x45ef32
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c98c0], 0
jne 0x45eed3
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edi, 2
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45f1c7
nop
mov ax, word [ecx*2 + 0x4c98c0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45ef10
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ebe0
cmp eax, 0xa7f8
jne 0x45efa2
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c9940], 0
jne 0x45ef43
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edi, 2
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45f1c7
nop
mov ax, word [ecx*2 + 0x4c9940]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45ef80
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ebe0
cmp eax, 0xa7f9
jne 0x45f012
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c9990], 0
jne 0x45efb3
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edi, 2
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45f1c7
nop
mov ax, word [ecx*2 + 0x4c9990]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45eff0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ebe0
cmp eax, 0xa7fa
jne 0x45f082
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c99e8], 0
jne 0x45f023
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edi, 2
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45f1c7
nop
mov ax, word [ecx*2 + 0x4c99e8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45f060
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ebe0
cmp eax, 0xa7fb
jne 0x45f0f2
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c9a38], 0
jne 0x45f093
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edi, 2
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45f1c7
nop
mov ax, word [ecx*2 + 0x4c9a38]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45f0d0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ebe0
cmp eax, 0xa7fc
jne 0x45f162
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c9a88], 0
jne 0x45f103
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edi, 2
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45f1c7
nop
mov ax, word [ecx*2 + 0x4c9a88]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45f140
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ebe0
cmp eax, 0xa7fd
jne 0x45f1d2
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c9ae0], 0
jne 0x45f173
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edi, 2
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45f1c7
nop
mov ax, word [ecx*2 + 0x4c9ae0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45f1b0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ebe0
cmp eax, 0xa7fe
jne 0x45ebdb
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c9b70], 0
jne 0x45f1e3
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mov edi, 2
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x45f1c7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c9b70]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x45f220
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x45ebe0
mov byte [ebp - 0x2c], 0
push ecx
mov ecx, dword [ebp - 0x2fc]
push 0x1c2
push 0x96
lea eax, [ecx + 0x2a8]
push eax
push 0
push 0x4c93b8
call fcn.00432ac0
or edi, 0xffffffff
mov eax, dword [ebp - 0x300]
test eax, eax
je 0x45f284
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x45f298
push eax
call fcn.00489f13
add esp, 4
mov eax, edi
jmp 0x45f2c2
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
push eax
push 0
push 0x4c3bf8
mov ecx, esi
call fcn.00432ac0
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00489f05
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret