Function at 0x40cea4
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x39c]
sub esp, 0x39c
push 0xffffffffffffffff
push 0x4304ff
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x43e748]
xor eax, ebp
mov dword [ebp + 0x398], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
or dword [ebp - 0x3c], 0xffffffff
xor ebx, ebx
or dword [ebp - 0x94], 0xffffffff
mov edi, ebx
or dword [ebp - 0x50], 0xffffffff
mov eax, ebx
mov ecx, ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp + 0x340], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp + 0x350], ebx
mov dword [ebp + 0x354], 7
mov word [ebp + 0x340], ax
cmp dword [0x45b1f8], 8
mov eax, 0x45b1e4
mov byte [ebp - 4], 1
jb 0x40cf61
mov eax, dword [0x45b1e4]
push eax
lea ecx, [ebp + 0x370]
call fcn.004014a3
cmp byte [0x45b0d1], 0
lea eax, [ebp + 0x370]
push eax
sete al
mov byte [ebp - 4], 2
movzx eax, al
push eax
call fcn.0040b844
lea ecx, [ebp + 0x370]
mov byte [ebp - 4], 1
call fcn.00401770
push 0x40
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.0040cb78
lea eax, [ebp - 0x4c]
push eax
push 0x40
push dword [ebp - 0x4c]
call fcn.0040c62c
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 4
push eax
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
call fcn.0040c014
mov dword [ebp - 0x64], eax
mov al, byte [0x45b498]
mov byte [ebp - 4], 5
mov dword [0x44a66c], 1
mov byte [0x44a670], al
mov dword [0x44a6a8], ebx
mov dword [ebp - 0xc0], 0x88
call fcn.0040b83b
test al, al
jne 0x40e274
mov ecx, ebx
mov esi, ebx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x18], esi
cmp ecx, 0x40
jl 0x40d03d
cmp byte [0x45a87c], 0
je 0x40d561
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x4c]
cdq
idiv dword [ebp - 0xc0]
cmp ecx, eax
jl 0x40d05e
lea eax, [ebp - 0xd]
push eax
lea eax, [ecx + 1]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040c475
mov eax, dword [ebp - 0x4c]
add eax, esi
mov esi, 0x44a6b0
push 4
push esi
mov dword [0x44a6b8], eax
call fcn.0040f5b7
test eax, eax
je 0x40d553
push esi
call fcn.0040ebff
test al, al
je 0x40d4ef
call fcn.00412010
test eax, eax
jne 0x40d4ea
cmp dword [0x45a7e8], 8
mov esi, 0x45a7d4
mov dword [0x45a7e4], ebx
mov eax, esi
jb 0x40d0b3
mov eax, dword [0x45a7d4]
xor ecx, ecx
mov word [eax], cx
movzx eax, byte [0x45a749]
push eax
movzx eax, word [0x45a768]
push 0x45a74c
push 2
push eax
call fcn.0040f0de
test eax, eax
je 0x40d0ea
cmp eax, edi
jle 0x40d0e1
mov edi, eax
mov dword [ebp - 0x14], edi
cmp eax, 1
jg 0x40d4d4
movzx eax, word [0x45a76a]
push ebx
push ebx
push 3
push eax
call fcn.0040f0de
test eax, eax
je 0x40d10f
cmp eax, edi
jle 0x40d106
mov dword [ebp - 0x14], eax
cmp eax, 1
jg 0x40d4d4
movzx eax, word [0x45a76a]
push ebx
push eax
push dword [0x45a718]
call fcn.00411bca
xor eax, eax
lea edi, [ebp - 0xe0]
stosd dword es:[edi], eax
push 0x63
stosd dword es:[edi], eax
stosd dword es:[edi], eax
pop eax
cmp word [0x45a74e], ax
jne 0x40d161
lea eax, [ebp - 0xe0]
push eax
movzx eax, word [0x45a76a]
push eax
push dword [0x45a718]
call fcn.0040eb3b
mov ax, word [ebp - 0xd8]
mov word [0x45a74e], ax
mov edi, dword [0x44a6b8]
lea esi, [ebp - 0xe0]
push ebx
push ebx
push ebx
lea edi, [edi + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movzx eax, word [0x45a76c]
push eax
call fcn.0040f0de
test eax, eax
je 0x40d198
cmp eax, dword [ebp - 0x14]
jle 0x40d18f
mov dword [ebp - 0x14], eax
cmp eax, 1
jg 0x40d4e3
mov dword [ebp + 0x370], ebx
mov dword [ebp + 0x380], ebx
mov dword [ebp + 0x384], 0xf
mov byte [ebp + 0x370], bl
lea eax, [ebp + 0x370]
mov byte [ebp - 4], 6
push eax
push dword [0x45a7ec]
movzx eax, word [0x45a76a]
push eax
push dword [0x45a718]
call fcn.0040eaad
test al, al
je 0x40d1f5
mov esi, 0x45a7d4
lea eax, [ebp + 0x370]
push esi
push eax
call fcn.00414166
push esi
push esi
call fcn.004066f1
lea ecx, [ebp + 0x370]
mov byte [ebp - 4], 5
call fcn.00409f55
movzx ecx, word [0x45a752]
movzx eax, word [0x45a750]
shl ecx, 0x10
or ecx, eax
push ecx
mov ecx, dword [0x44a6b8]
lea ecx, [ecx + 0x68]
call fcn.0040ac74
mov eax, dword [0x44a6b8]
mov dword [eax + 0x70], ebx
mov dword [eax + 0x74], ebx
mov eax, dword [0x44a6b8]
mov dword [eax + 0x78], ebx
mov dword [eax + 0x7c], ebx
mov ecx, dword [0x44a6b8]
lea eax, [ecx + 0x78]
push eax
lea eax, [ecx + 0x70]
push eax
lea eax, [ecx + 0x68]
push eax
movzx eax, word [0x45a76a]
push eax
push dword [0x45a718]
call fcn.0040e90d
movzx esi, word [0x45a76a]
mov edi, dword [0x45a718]
test esi, esi
je 0x40d27a
test edi, edi
jne 0x40d362
mov byte [ebp - 0xd], bl
push 0x340
lea eax, [ebp]
push ebx
push eax
call fcn.0041dc30
add esp, 0xc
lea ecx, [ebp]
call fcn.0040c805
push 0x45a7d4
lea ecx, [ebp + 0x28]
mov byte [ebp - 4], 7
call fcn.004021d7
mov eax, dword [0x45a774]
mov dword [ebp + 0x24], eax
lea eax, [ebp + 0x24]
push ebx
push eax
push dword [0x45a764]
mov eax, dword [0x44a6b8]
push dword [0x45a760]
push dword [eax + 0x34]
lea eax, [ebp + 0x28]
push eax
call fcn.004141a4
mov edx, dword [0x44a6b8]
mov byte [ebp + 0x101], al
mov eax, dword [edx + 0x68]
mov ecx, dword [edx + 0x6c]
add edx, 0x40
mov dword [ebp + 0x50], eax
mov eax, dword [0x45a760]
mov dword [ebp + 0x54], ecx
mov ecx, dword [0x45a764]
mov dword [ebp + 0x70], eax
mov dword [ebp + 0x74], ecx
mov dword [edx + 0x10], ebx
cmp dword [edx + 0x14], 0x10
jb 0x40d309
mov edx, dword [edx]
mov byte [edx], bl
movzx esi, word [0x45a76a]
mov edi, dword [0x45a718]
test esi, esi
je 0x40d466
test edi, edi
je 0x40d466
jmp 0x40d3c8
push edi
call fcn.0040f464
movzx eax, ax
mov dword [ebp - 0x2c], eax
lea eax, [edi + 2]
push eax
call fcn.0040f464
movzx ecx, ax
lea eax, [esi - 4]
cmp ecx, eax
ja 0x40d27a
cmp dword [ebp - 0x2c], 0x17
je 0x40d36c
push 0xfffffffffffffffc
add edi, 4
pop eax
sub eax, ecx
add edi, ecx
add esi, eax
cmp esi, 4
jae 0x40d32d
jmp 0x40d27a
push str.AES_0017
push 0x45a7d4
push 0x45b1e4
push 0x22
mov byte [ebp - 0xd], 1
call fcn.0040c6db
jmp 0x40d27d
push edi
call fcn.0040f464
movzx eax, ax
mov dword [ebp - 0x2c], eax
lea eax, [edi + 2]
push eax
call fcn.0040f464
movzx ecx, ax
lea eax, [esi - 4]
cmp ecx, eax
ja 0x40d466
cmp dword [ebp - 0x2c], 0x9903
jne 0x40d3bc
cmp ecx, 0x14
jae 0x40d3d2
push 0xfffffffffffffffc
add edi, 4
pop eax
sub eax, ecx
add edi, ecx
add esi, eax
cmp esi, 4
jae 0x40d38b
jmp 0x40d466
push 0x10
lea eax, [edi + 8]
push eax
lea eax, [ebp + 0x388]
push eax
call fcn.0041d6b0
mov ecx, dword [0x44a6b8]
lea eax, [ebp + 0x388]
add esp, 0xc
lea ecx, [ecx + 0x40]
push 0x10
push eax
call fcn.00409f79
push 0x5c
pop eax
cmp word [0x45a74e], ax
je 0x40d466
mov eax, dword [0x44a6b8]
lea ecx, [ebp + 0x358]
add eax, 0x40
push eax
call fcn.0040c7a7
push 0x45a7d4
lea ecx, [ebp + 0x370]
mov byte [ebp - 4], 8
call fcn.00401fa4
lea eax, [ebp + 0x358]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x64]
call fcn.0040c0ce
lea ecx, [ebp + 0x370]
mov byte [ebp - 4], 7
call fcn.00401770
lea ecx, [ebp + 0x358]
call fcn.00409f55
cmp byte [ebp - 0xd], 0
jne 0x40d4b0
push ebx
push ebx
push 6
push ebx
lea eax, [ebp]
mov ecx, 0x45afd0
push eax
call fcn.00402767
test eax, eax
je 0x40d4b0
call fcn.0040eccc
test eax, eax
je 0x40d4ad
mov ecx, dword [0x44a6b8]
push 0x45a7d4
call fcn.004021d7
mov esi, dword [ebp - 0x18]
inc dword [ebp - 0x38]
add esi, 0x88
mov dword [ebp - 0x18], esi
jmp 0x40d4b3
inc dword [ebp - 0x40]
mov esi, dword [ebp - 0x18]
add dword [ebp - 0x68], 1
lea ecx, [ebp]
mov byte [ebp - 4], 5
adc dword [ebp - 0x98], ebx
call fcn.0040c9fb
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x38]
jmp 0x40d02b
push esi
push 0x45b1e4
push 0x1c
call fcn.00402c81
jmp 0x40d55a
push 0x45a7d4
jmp 0x40d4d5
mov dword [ebp - 0x14], eax
jmp 0x40d55a
mov eax, dword [ebp - 0x68]
mov ecx, dword [0x45a790]
xor eax, ecx
movzx eax, ax
or eax, ebx
je 0x40d529
cmp ecx, 0xffff
jne 0x40d511
cmp dword [0x45a794], ebx
je 0x40d529
push 0x45b1e4
mov ecx, 0x45b4e8
call fcn.00402d47
mov dword [ebp - 0x14], 3
jmp 0x40d55a
push esi
call fcn.0040ec47
test al, al
jne 0x40d54e
cmp byte [0x45a884], al
je 0x40d545
push esi
call fcn.0040ec23
test al, al
jne 0x40d54e
mov dword [ebp - 0x58], 1
jmp 0x40d55a
mov dword [ebp - 0x58], ebx
jmp 0x40d55a
mov dword [ebp - 0x14], 0x33
mov dword [ebp - 0x20], 1
cmp byte [0x45a87c], 0
mov eax, dword [0x45a708]
mov dword [ebp - 0xb0], eax
mov eax, dword [0x45a70c]
mov dword [ebp - 0xac], eax
mov eax, dword [0x45a6c8]
mov dword [ebp - 0xb4], eax
mov eax, dword [0x45a6d0]
mov dword [ebp - 0xb8], eax
mov eax, dword [0x45a6d4]
mov dword [ebp - 0xbc], eax
je 0x40d64b
push 0x45b1e4
mov dword [0x45a880], ebx
call fcn.0040ca6f
test al, al
mov eax, str.zx01
jne 0x40d5c3
mov eax, 0x432fcc
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004014a3
push 0x45b1e4
call fcn.00406679
mov edi, dword [0x45a6e8]
test edi, edi
je 0x40d5f4
mov eax, dword [edi]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x43224c]
mov ecx, edi
call esi
mov dword [0x45a6e8], ebx
call fcn.0040f479
cmp dword [0x45b1f8], 8
mov eax, 0x45b1e4
jb 0x40d612
mov eax, dword [0x45b1e4]
push eax
lea ecx, [ebp + 0x370]
call fcn.004014a3
cmp byte [0x45b0d1], 0
lea eax, [ebp + 0x370]
push eax
sete al
mov byte [ebp - 4], 0xa
movzx eax, al
push eax
call fcn.0040b844
lea ecx, [ebp + 0x370]
mov byte [ebp - 4], 5
call fcn.00401770
cmp dword [ebp - 0x38], 0
mov eax, ebx
mov dword [ebp - 0x2c], ebx
jle 0x40dd69
mov ecx, dword [ebp - 0x54]
shl ecx, 6
mov dword [ebp - 0xa0], ecx
imul esi, eax, 0x88
add ecx, eax
mov dword [ebp - 0x3c], ecx
add esi, dword [ebp - 0x4c]
mov dword [0x44a6b8], esi
mov dword [ebp - 0x28], esi
cmp dword [esi + 0x14], 8
jb 0x40d688
mov eax, dword [esi]
mov dword [ebp - 0x28], eax
cmp byte [0x45a87c], 0
je 0x40d71f
mov ecx, dword [esi + 0x38]
cmp ecx, dword [0x45a880]
je 0x40d71f
movzx eax, word [0x45a780]
cmp ecx, eax
jne 0x40d6da
push 0x45b1e4
call fcn.0040ca6f
test al, al
mov eax, str.zipx
jne 0x40d6c3
mov eax, 0x432fe0
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004014a3
push 0x45b1e4
call fcn.00406679
jmp 0x40d6e5
push ecx
push 0x45b1e4
call fcn.0040cb19
mov eax, dword [0x44a6b8]
mov edi, dword [0x45a6e8]
mov eax, dword [eax + 0x38]
mov dword [0x45a880], eax
test edi, edi
je 0x40d70e
mov eax, dword [edi]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x43224c]
mov ecx, edi
call esi
mov dword [0x45a6e8], ebx
call fcn.0040f479
mov esi, dword [0x44a6b8]
mov edi, dword [esi + 0x18]
add edi, dword [0x45a710]
mov esi, dword [esi + 0x1c]
adc esi, dword [0x45a714]
push ebx
push 0x2000
push esi
push edi
call fcn.0041cb00
mov ecx, edi
mov dword [ebp - 0x1c], eax
sub ecx, eax
mov eax, esi
sbb eax, edx
mov dword [ebp - 0x24], eax
cmp esi, ebx
jg 0x40d7e9
jl 0x40d75e
cmp edi, ebx
jae 0x40d7e9
push 0x45b1e4
mov ecx, 0x45b4e8
call fcn.00402d47
cmp dword [ebp - 0x3c], 0
mov dword [ebp - 0x14], 2
jne 0x40d7dd
mov ecx, dword [0x45a710]
mov eax, ecx
mov edx, dword [0x45a714]
or eax, edx
je 0x40d7dd
mov eax, dword [0x44a6b8]
push ebx
push 0x2000
mov dword [0x45a710], ebx
mov dword [0x45a714], ebx
mov esi, dword [eax + 0x1c]
mov edi, dword [eax + 0x18]
push esi
push edi
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x7c], edx
call fcn.0041cb00
mov ecx, edi
mov dword [ebp - 0x1c], eax
sub ecx, eax
mov eax, esi
sbb eax, edx
mov dword [ebp - 0x24], eax
cmp esi, ebx
jg 0x40d7e9
jl 0x40d7ce
cmp edi, ebx
jae 0x40d7e9
push 0x45b1e4
mov ecx, 0x45b4e8
call fcn.00402d47
mov dword [ebp - 0x14], 3
jmp 0x40e24d
cmp ecx, dword [0x45a708]
jne 0x40d82e
cmp eax, dword [0x45a70c]
jne 0x40d82e
cmp byte [0x45a87c], 0
jne 0x40d82e
mov eax, dword [0x45a6c8]
mov edi, dword [ebp - 0x1c]
sub eax, edi
mov ecx, dword [0x45a6c4]
sub eax, ecx
cdq
add dword [0x45a6d0], eax
adc dword [0x45a6d4], edx
lea eax, [edi + ecx]
mov dword [0x45a6c8], eax
jmp 0x40d8c0
mov edi, dword [0x45a6e8]
push ebx
push dword [ebp - 0x24]
mov eax, dword [edi]
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x43224c]
mov ecx, edi
call esi
mov edi, dword [0x45a6e8]
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x43224c]
mov ecx, edi
call esi
push 0x2000
push dword [0x45a6c4]
mov dword [0x45a708], eax
mov dword [0x45a70c], edx
call fcn.0040f9d1
cdq
mov esi, edx
mov ecx, eax
mov dword [0x45a6d0], ecx
mov dword [0x45a6d4], esi
cmp esi, ebx
jg 0x40d89f
jl 0x40d7ce
cmp ecx, ebx
jbe 0x40d7ce
mov eax, dword [0x45a6c4]
add eax, dword [ebp - 0x1c]
mov dword [0x45a6c8], eax
mov eax, dword [ebp - 0x1c]
cdq
sub ecx, eax
mov dword [0x45a6d0], ecx
sbb esi, edx
mov dword [0x45a6d4], esi
push 4
mov edi, 0x44a6b0
push edi
call fcn.0040f5b7
test eax, eax
je 0x40d7ce
push edi
call fcn.0040ec6b
test al, al
jne 0x40d96e
cmp dword [ebp - 0x3c], 0
mov edx, dword [0x45a714]
mov ecx, dword [0x45a710]
jne 0x40d90f
mov eax, ecx
or eax, edx
je 0x40d90f
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x7c], edx
mov dword [0x45a710], ebx
mov dword [0x45a714], ebx
jmp 0x40d933
or ecx, edx
jne 0x40d7ce
mov esi, dword [ebp - 0x6c]
mov eax, esi
mov edi, dword [ebp - 0x7c]
or eax, edi
je 0x40d7ce
mov dword [0x45a710], esi
mov dword [0x45a714], edi
mov eax, dword [0x44a6b8]
push dword [eax + 0x1c]
push dword [eax + 0x18]
call fcn.0040f7fa
test eax, eax
jne 0x40d7ce
push 4
mov edi, 0x44a6b0
push edi
call fcn.0040f5b7
test eax, eax
je 0x40d7ce
push edi
call fcn.0040ec6b
test al, al
je 0x40d7ce
call fcn.00412199
mov esi, eax
test esi, esi
je 0x40d990
push 0x45b1e4
mov ecx, 0x45b4e8
call fcn.00402d47
mov dword [ebp - 0x14], esi
jmp 0x40e24d
cmp dword [0x45a7e8], 8
mov edi, 0x45a7d4
mov dword [0x45a7e4], ebx
mov eax, edi
jb 0x40d9ab
mov eax, dword [0x45a7d4]
push ebx
xor ecx, ecx
push 0x45a722
mov word [eax], cx
movzx eax, word [0x45a740]
push 2
push eax
call fcn.0040f0de
test eax, eax
je 0x40d9e8
cmp eax, dword [ebp - 0x14]
jle 0x40d9d1
mov dword [ebp - 0x14], eax
cmp eax, 1
jle 0x40d9e8
push edi
push 0x45b1e4
push 0x1c
call fcn.00402c81
jmp 0x40e24d
mov eax, dword [0x45a718]
test eax, eax
je 0x40d9fe
push eax
call fcn.00423695
pop ecx
mov dword [0x45a718], ebx
movzx eax, word [0x45a742]
push ebx
push ebx
push 3
push eax
call fcn.0040f0de
test eax, eax
je 0x40da20
cmp eax, dword [ebp - 0x14]
jle 0x40da1b
mov dword [ebp - 0x14], eax
cmp eax, 1
jg 0x40d9d6
movzx eax, word [0x45a742]
push 1
push eax
push dword [0x45a718]
call fcn.00411bca
mov dword [ebp + 0x370], ebx
mov dword [ebp + 0x380], ebx
mov dword [ebp + 0x384], 0xf
mov byte [ebp + 0x370], bl
lea eax, [ebp + 0x370]
mov byte [ebp - 4], 0xb
push eax
push dword [0x45a7ec]
movzx eax, word [0x45a742]
push eax
push dword [0x45a718]
call fcn.0040eaad
test al, al
je 0x40da8d
push edi
lea eax, [ebp + 0x370]
push eax
call fcn.00414166
push edi
push edi
call fcn.004066f1
mov eax, dword [ebp + 0x384]
mov byte [ebp - 4], 5
cmp eax, 0x10
jb 0x40dacc
mov ecx, dword [ebp + 0x370]
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], ecx
cmp eax, 0x1000
jb 0x40dac3
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004016b3
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
push eax
push ecx
call fcn.0041c3b6
pop ecx
pop ecx
mov edx, dword [0x44a6b8]
push 0x45a800
push 0x45a7f8
push 0x45a7f0
mov eax, dword [edx + 0x68]
mov ecx, dword [edx + 0x6c]
mov dword [0x45a7f0], eax
mov dword [0x45a7f4], ecx
mov eax, dword [edx + 0x70]
mov ecx, dword [edx + 0x74]
mov dword [0x45a7f8], eax
mov dword [0x45a7fc], ecx
mov eax, dword [edx + 0x78]
mov ecx, dword [edx + 0x7c]
mov dword [0x45a800], eax
movzx eax, word [0x45a742]
push eax
push dword [0x45a718]
mov dword [0x45a804], ecx
call fcn.0040e90d
push 0x63
pop eax
mov cl, bl
mov byte [0x45a888], cl
cmp word [0x45a724], ax
jne 0x40db59
movzx eax, word [0x45a742]
push 0x45a888
push eax
push dword [0x45a718]
call fcn.0040eb3b
mov cl, byte [0x45a888]
mov esi, dword [0x44a6b8]
add esi, 0x58
cmp byte [esi], 0
je 0x40db7e
test cl, cl
jne 0x40db82
mov edi, 0x45a888
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov cl, byte [0x45a888]
mov edi, 0x45a7d4
test cl, cl
je 0x40db8e
mov ax, word [0x45a890]
mov word [0x45a724], ax
mov esi, dword [ebp - 0x28]
push esi
call fcn.004214de
pop ecx
push eax
push esi
mov ecx, edi
call fcn.0040180c
mov ecx, dword [0x44a6b8]
push ebx
lea eax, [ecx + 0x3c]
push eax
push dword [ecx + 0x2c]
push dword [ecx + 0x28]
push dword [ecx + 0x34]
push edi
call fcn.004141a4
mov edx, dword [0x45a7e8]
cmp edx, 8
mov byte [ebp - 0xd], al
mov eax, edi
mov edi, dword [0x45a7d4]
sbb cl, cl
inc cl
cmp edx, 8
jb 0x40dbda
mov eax, edi
cmp word [eax], bx
je 0x40dc48
mov eax, 0x45a7d4
test cl, cl
je 0x40dbea
mov eax, edi
cmp word [eax + 2], bx
je 0x40dc48
mov esi, dword [0x45a7e4]
push 2
pop eax
cmp esi, eax
jbe 0x40dc48
mov ebx, dword [0x45a7e8]
cmp ebx, 8
mov ecx, 0x45a7d4
sbb dl, dl
inc dl
cmp ebx, 8
jb 0x40dc16
mov ecx, edi
cmp word [ecx + eax*2], 0x3a
jne 0x40dc41
mov ecx, 0x45a7d4
test dl, dl
je 0x40dc28
mov ecx, edi
push 0x5f
pop edx
mov word [ecx + eax*2], dx
mov esi, dword [0x45a7e4]
mov edi, dword [0x45a7d4]
mov ebx, dword [0x45a7e8]
inc eax
cmp eax, esi
jb 0x40dc03
xor ebx, ebx
mov eax, 0x45a7d4
push eax
push eax
call fcn.00405af6
cmp byte [ebp - 0xd], 0
je 0x40dc60
mov edx, ebx
mov esi, ebx
jmp 0x40dc6c
mov edx, dword [0x44a688]
mov esi, dword [0x44a68c]
movzx ecx, word [0x45a742]
movzx eax, word [0x45a740]
add ecx, 0x1e
add eax, ecx
xor ecx, ecx
add eax, edx
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x24], eax
mov eax, edx
adc ecx, esi
and eax, dword [ebp - 0x50]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [0x44a6b8]
cmp eax, 0xffffffff
je 0x40deff
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ecx + 0x38]
jne 0x40deff
mov edi, dword [ecx + 0x1c]
mov eax, dword [ebp - 0x50]
mov esi, dword [ecx + 0x18]
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x28], edi
cmp edi, eax
jg 0x40deff
jl 0x40dcd8
cmp esi, edx
jae 0x40deff
sub edx, esi
sbb eax, edi
mov dword [ebp - 0xa4], eax
js 0x40deff
jg 0x40dcf6
cmp edx, 0x200
jbe 0x40deff
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0x34], edi
jg 0x40ddf5
jl 0x40dd2a
cmp ecx, esi
ja 0x40ddf5
mov edx, ecx
mov ecx, dword [ebp - 0x34]
add edx, dword [ebp - 0x80]
adc ecx, dword [ebp - 0x84]
cmp ecx, edi
jg 0x40dd4a
jl 0x40de03
cmp edx, esi
jbe 0x40de03
push 0x45a7d4
push 0x45b1e4
push 0x1c
call fcn.00402c81
mov dword [ebp - 0x14], 3
mov dword [ebp - 0x20], 1
mov edi, dword [0x45a6e8]
push ebx
push dword [ebp - 0xac]
mov eax, dword [edi]
push dword [ebp - 0xb0]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x43224c]
mov ecx, edi
call esi
mov edi, dword [0x45a6e8]
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x43224c]
mov ecx, edi
call esi
push 0x2000
push dword [0x45a6c4]
mov dword [0x45a708], eax
mov dword [0x45a70c], edx
call fcn.0040f9d1
mov eax, dword [ebp - 0xb4]
inc dword [ebp - 0x54]
cmp dword [ebp - 0x20], 0
mov edi, dword [ebp - 0x14]
mov dword [0x45a6c8], eax
mov eax, dword [ebp - 0xb8]
mov dword [0x45a6d0], eax
mov eax, dword [ebp - 0xbc]
mov dword [0x45a6d4], eax
jne 0x40e274
jmp 0x40d014
mov edx, dword [ebp - 0x80]
add edx, ecx
mov ecx, dword [ebp - 0x84]
adc ecx, dword [ebp - 0x34]
mov edi, esi
add edi, eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xa4], edi
adc eax, dword [ebp - 0x1c]
add esi, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x28]
adc eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x34], eax
jg 0x40de42
jl 0x40de2b
cmp dword [ebp - 0x30], esi
jae 0x40de42
mov eax, dword [ebp - 0x18]
cmp ecx, eax
jg 0x40dd4a
jl 0x40de45
cmp edx, edi
jae 0x40dd4a
jmp 0x40de45
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x90]
jmp 0x40deb9
mov ecx, dword [ebp - 0x28]
mov edx, dword [edi]
cmp dword [edi + 4], ecx
jg 0x40de86
jl 0x40de61
cmp edx, dword [ebp - 0x9c]
ja 0x40de86
mov eax, dword [edi + 0xc]
mov ecx, edx
add ecx, dword [edi + 8]
adc eax, dword [edi + 4]
cmp eax, dword [ebp - 0x28]
jg 0x40dd4a
jl 0x40de83
cmp ecx, dword [ebp - 0x9c]
ja 0x40dd4a
mov eax, dword [ebp - 0x18]
cmp dword [edi + 4], eax
jg 0x40deb6
mov ecx, dword [ebp - 0xa4]
jl 0x40de97
cmp edx, ecx
jae 0x40deb6
add edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
adc eax, dword [edi + 4]
cmp eax, dword [ebp - 0x18]
jg 0x40dd4a
jl 0x40deb3
cmp edx, ecx
jae 0x40dd4a
mov eax, dword [ebp - 0x18]
add edi, 0x10
cmp edi, dword [ebp - 0x8c]
jne 0x40de4d
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x88]
je 0x40dee6
mov edi, eax
lea esi, [ebp - 0xd4]
add eax, 0x10
mov dword [ebp - 0x8c], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x40def9
lea ecx, [ebp - 0xd4]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.0040c156
mov ecx, dword [0x44a6b8]
mov esi, dword [ecx + 0x18]
mov eax, dword [ebp - 0x24]
mov edi, dword [ecx + 0x1c]
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], esi
add esi, eax
mov dword [ebp - 0x80], eax
mov eax, dword [ecx + 0x38]
mov cl, byte [0x45b0d1]
mov dword [ebp - 0x34], edi
adc edi, edx
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0xc4], eax
test cl, cl
je 0x40df57
cmp dword [0x45b1e0], 8
mov eax, 0x45b1cc
jb 0x40df4d
mov eax, dword [0x45b1cc]
push 0x49
pop edx
cmp word [eax], dx
mov al, 1
jne 0x40df59
mov al, bl
push ebx
push eax
test cl, cl
mov edi, 0x45a7d4
sete al
movzx eax, al
push eax
push edi
call fcn.0040b85d
test al, al
je 0x40dd69
mov al, byte [0x45b0d1]
test al, al
jne 0x40dfab
cmp byte [0x45b063], al
jne 0x40dfcd
lea eax, [ebp + 0x340]
push eax
push 0x45b1fc
push edi
call fcn.0040453a
test al, al
je 0x40e24d
mov al, byte [0x45b0d1]
test al, al
je 0x40dfcd
cmp byte [ebp - 0xd], 0
jne 0x40e24d
push 0x5c
pop ecx
cmp word [0x45a724], cx
je 0x40e24d
test al, al
jne 0x40e1f9
cmp byte [ebp - 0xd], 0
mov esi, ebx
je 0x40e156
cmp byte [0x45b03b], 0
jne 0x40e24d
cmp dword [0x45a7e4], 0
je 0x40e24d
cmp dword [0x45b040], 1
je 0x40e24d
mov eax, dword [0x44a6b8]
cmp dword [eax + 0x34], 0
je 0x40e011
cmp dword [eax + 0x34], 0xb
jne 0x40e014
mov esi, dword [eax + 0x3c]
push edi
call fcn.0040444f
test al, al
jne 0x40e081
cmp byte [0x45b078], al
push esi
sete al
movzx eax, al
push eax
push edi
call fcn.00404740
test eax, eax
je 0x40e07b
movzx eax, byte [0x45b02b]
push eax
push 1
push edi
call fcn.00404235
cmp byte [0x45b078], 0
push esi
sete al
movzx eax, al
push eax
push edi
call fcn.00404740
test eax, eax
je 0x40e07b
push edi
push 0x45b1e4
push 0x14
call fcn.00402c81
mov ecx, 0x45b4e8
call fcn.00403030
jmp 0x40e24d
inc dword [0x44a6a8]
xor eax, eax
mov dword [ebp + 0x358], ebx
mov dword [ebp + 0x368], ebx
mov dword [ebp + 0x36c], 7
mov word [ebp + 0x358], ax
mov dword [ebp + 0x370], ebx
mov dword [ebp + 0x374], ebx
mov dword [ebp + 0x378], ebx
mov dword [ebp + 0x37c], ebx
mov dword [ebp + 0x380], ebx
mov dword [ebp + 0x384], ebx
push edi
lea ecx, [ebp + 0x358]
mov byte [ebp - 4], 0xc
call fcn.004021d7
mov eax, dword [0x45a7f0]
mov ecx, dword [0x45a7f4]
mov esi, dword [ebp - 0x74]
mov dword [ebp + 0x370], eax
mov eax, dword [0x45a800]
mov dword [ebp + 0x378], eax
mov eax, dword [0x45a7f8]
mov dword [ebp + 0x374], ecx
mov ecx, dword [0x45a804]
mov dword [ebp + 0x380], eax
lea eax, [ebp + 0x358]
mov dword [ebp + 0x37c], ecx
mov ecx, dword [0x45a7fc]
push eax
mov dword [ebp + 0x384], ecx
push esi
cmp esi, dword [ebp - 0x70]
je 0x40e13a
lea eax, [ebp - 0x78]
push eax
call fcn.0040c661
add esi, 0x30
mov dword [ebp - 0x74], esi
jmp 0x40e142
lea ecx, [ebp - 0x78]
call fcn.0040c24d
lea ecx, [ebp + 0x358]
mov byte [ebp - 4], 5
call fcn.00401770
jmp 0x40e24d
push edi
call fcn.0040ee8e
cmp eax, 0xffffffff
je 0x40e1bd
test eax, eax
je 0x40e1a1
cmp eax, 1
jne 0x40e1f9
mov eax, dword [0x45b010]
cmp eax, 2
je 0x40e24d
cmp byte [0x45b03c], 0
jne 0x40e24d
cmp byte [0x45b03b], 0
jne 0x40e24d
test eax, eax
je 0x40e1ce
cmp eax, 3
jne 0x40e1f9
jmp 0x40e1ce
mov eax, dword [0x45b010]
cmp eax, 2
je 0x40e24d
test eax, eax
je 0x40e1b8
cmp eax, 3
jne 0x40e1f9
xor esi, esi
inc esi
jmp 0x40e1ca
cmp byte [0x45b03b], 0
jne 0x40e24d
test esi, esi
je 0x40e1f9
push ebx
push 0x45a7f0
push dword [0x44a694]
push dword [0x44a690]
push edi
push 0x45afd0
call fcn.0040b67c
cmp eax, 6
je 0x40dd62
cmp eax, 1
je 0x40e24d
mov eax, dword [0x44a6b8]
test byte [eax + 0x80], 1
je 0x40e238
call fcn.00412993
test eax, eax
je 0x40e238
cmp eax, 9
je 0x40e268
cmp eax, 0xc
jne 0x40e221
inc dword [ebp - 0x5c]
push 6
jmp 0x40e22b
cmp eax, dword [ebp - 0x14]
jle 0x40e229
mov dword [ebp - 0x14], eax
push 0x1c
pop eax
push edi
push 0x45b1e4
push eax
jmp 0x40d9de
lea eax, [ebp - 0x64]
push eax
call fcn.0040e3fb
test eax, eax
je 0x40e24d
cmp eax, dword [ebp - 0x14]
jle 0x40e24d
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, dword [ebp - 0x38]
jge 0x40dd69
mov ecx, dword [ebp - 0xa0]
jmp 0x40d666
push 2
call fcn.00402c14
mov edi, dword [ebp - 0x14]
mov bl, 1
mov esi, dword [ebp - 0x78]
cmp esi, dword [ebp - 0x74]
je 0x40e2ec
add esi, 0x28
cmp dword [esi - 0x14], 8
lea eax, [esi - 0x28]
jb 0x40e28a
mov eax, dword [eax]
push eax
lea ecx, [ebp + 0x370]
call fcn.004014a3
mov eax, dword [0x45b1a8]
mov ecx, dword [0x45b1a4]
neg eax
mov byte [ebp - 4], 0xd
sbb eax, eax
and eax, esi
neg ecx
push eax
sbb ecx, ecx
lea eax, [esi - 8]
and ecx, eax
lea eax, [esi - 0x10]
push ecx
mov ecx, dword [0x45b1a0]
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp + 0x370]
push ecx
push eax
call fcn.00404862
lea ecx, [ebp + 0x370]
mov byte [ebp - 4], 5
call fcn.00401770
add esi, 0x30
lea eax, [esi - 0x28]
cmp eax, dword [ebp - 0x74]
jne 0x40e27f
call fcn.0040b83b
test al, al
jne 0x40e317
cmp dword [ebp - 0x58], 0
je 0x40e317
cmp byte [0x45a87c], al
jne 0x40e317
push 0x45b1e4
mov ecx, 0x45b4e8
call fcn.00402d47
test edi, edi
jne 0x40e317
inc edi
mov esi, dword [ebp - 0x3c]
inc esi
cmp dword [0x44a6a8], 0
jne 0x40e35b
cmp dword [0x45b1e0], 8
mov eax, dword [0x45b1cc]
jae 0x40e337
mov eax, 0x45b1cc
push 0x49
pop ecx
cmp word [eax], cx
je 0x40e35b
test bl, bl
jne 0x40e34f
push 0x45b1e4
push 0x45
call fcn.00402c45
push 0xa
mov ecx, 0x45b4e8
call fcn.00402fe8
test esi, esi
jne 0x40e377
cmp edi, 1
jg 0x40e377
mov eax, dword [ebp - 0x40]
xor cx, cx
cmp cx, ax
sbb edi, edi
and edi, 0x46
add edi, 0xb
jmp 0x40e3a5
mov ecx, dword [ebp - 0x5c]
movzx eax, cx
cmp esi, eax
jne 0x40e38a
cmp edi, 1
jg 0x40e38a
push 0x52
jmp 0x40e398
cmp word [ebp - 0x40], 0
je 0x40e39b
cmp edi, 1
jg 0x40e39b
push 0x51
pop edi
jmp 0x40e3a5
test cx, cx
je 0x40e3a5
test edi, edi
jne 0x40e3a5
inc edi
lea eax, [ebp - 0x64]
push eax
mov ecx, eax
call fcn.0040c34e
lea ecx, [ebp - 0x78]
call fcn.0040c9b3
lea ecx, [ebp - 0x4c]
call fcn.0040ce2b
lea ecx, [ebp + 0x340]
call fcn.00401770
lea ecx, [ebp - 0x90]
call fcn.0040c98f
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x398]
xor ecx, ebp
call fcn.0041c3c4
add ebp, 0x39c
leave
ret