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

Disassembly:
push ebp
lea ebp, [esp - 0x39c]
sub esp, 0x39c
push 0xffffffffffffffff
push 0x430522
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 0x40cf75
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.0040cb8f
lea eax, [ebp - 0x4c]
push eax
push 0x40
push dword [ebp - 0x4c]
call fcn.0040c643
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.0040c02b
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 0x40e288
mov ecx, ebx
mov esi, ebx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x18], esi
cmp ecx, 0x40
jl 0x40d051
cmp byte [0x45a87c], 0
je 0x40d575
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x4c]
cdq
idiv dword [ebp - 0xc0]
cmp ecx, eax
jl 0x40d072
lea eax, [ebp - 0xd]
push eax
lea eax, [ecx + 1]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040c48c
mov eax, dword [ebp - 0x4c]
add eax, esi
mov esi, 0x44a6b0
push 4
push esi
mov dword [0x44a6b8], eax
call fcn.0040f5c9
test eax, eax
je 0x40d567
push esi
call fcn.0040ec13
test al, al
je 0x40d503
call fcn.00412022
test eax, eax
jne 0x40d4fe
cmp dword [0x45a7e8], 8
mov esi, 0x45a7d4
mov dword [0x45a7e4], ebx
mov eax, esi
jb 0x40d0c7
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.0040f0f0
test eax, eax
je 0x40d0fe
cmp eax, edi
jle 0x40d0f5
mov edi, eax
mov dword [ebp - 0x14], edi
cmp eax, 1
jg 0x40d4e8
movzx eax, word [0x45a76a]
push ebx
push ebx
push 3
push eax
call fcn.0040f0f0
test eax, eax
je 0x40d123
cmp eax, edi
jle 0x40d11a
mov dword [ebp - 0x14], eax
cmp eax, 1
jg 0x40d4e8
movzx eax, word [0x45a76a]
push ebx
push eax
push dword [0x45a718]
call fcn.00411bdc
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 0x40d175
lea eax, [ebp - 0xe0]
push eax
movzx eax, word [0x45a76a]
push eax
push dword [0x45a718]
call fcn.0040eb4f
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.0040f0f0
test eax, eax
je 0x40d1ac
cmp eax, dword [ebp - 0x14]
jle 0x40d1a3
mov dword [ebp - 0x14], eax
cmp eax, 1
jg 0x40d4f7
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.0040eac1
test al, al
je 0x40d209
mov esi, 0x45a7d4
lea eax, [ebp + 0x370]
push esi
push eax
call fcn.00414176
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.0040e921
movzx esi, word [0x45a76a]
mov edi, dword [0x45a718]
test esi, esi
je 0x40d28e
test edi, edi
jne 0x40d376
mov byte [ebp - 0xd], bl
push 0x340
lea eax, [ebp]
push ebx
push eax
call fcn.0041dc40
add esp, 0xc
lea ecx, [ebp]
call fcn.0040c81c
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.004141b4
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 0x40d31d
mov edx, dword [edx]
mov byte [edx], bl
movzx esi, word [0x45a76a]
mov edi, dword [0x45a718]
test esi, esi
je 0x40d47a
test edi, edi
je 0x40d47a
jmp 0x40d3dc
push edi
call fcn.0040f476
movzx eax, ax
mov dword [ebp - 0x2c], eax
lea eax, [edi + 2]
push eax
call fcn.0040f476
movzx ecx, ax
lea eax, [esi - 4]
cmp ecx, eax
ja 0x40d28e
cmp dword [ebp - 0x2c], 0x17
je 0x40d380
push 0xfffffffffffffffc
add edi, 4
pop eax
sub eax, ecx
add edi, ecx
add esi, eax
cmp esi, 4
jae 0x40d341
jmp 0x40d28e
push str.AES_0017
push 0x45a7d4
push 0x45b1e4
push 0x22
mov byte [ebp - 0xd], 1
call fcn.0040c6f2
jmp 0x40d291
push edi
call fcn.0040f476
movzx eax, ax
mov dword [ebp - 0x2c], eax
lea eax, [edi + 2]
push eax
call fcn.0040f476
movzx ecx, ax
lea eax, [esi - 4]
cmp ecx, eax
ja 0x40d47a
cmp dword [ebp - 0x2c], 0x9903
jne 0x40d3d0
cmp ecx, 0x14
jae 0x40d3e6
push 0xfffffffffffffffc
add edi, 4
pop eax
sub eax, ecx
add edi, ecx
add esi, eax
cmp esi, 4
jae 0x40d39f
jmp 0x40d47a
push 0x10
lea eax, [edi + 8]
push eax
lea eax, [ebp + 0x388]
push eax
call fcn.0041d6c0
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 0x40d47a
mov eax, dword [0x44a6b8]
lea ecx, [ebp + 0x358]
add eax, 0x40
push eax
call fcn.0040c7be
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.0040c0e5
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 0x40d4c4
push ebx
push ebx
push 6
push ebx
lea eax, [ebp]
mov ecx, 0x45afd0
push eax
call fcn.00402767
test eax, eax
je 0x40d4c4
call fcn.0040ece0
test eax, eax
je 0x40d4c1
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 0x40d4c7
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.0040ca12
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x38]
jmp 0x40d03f
push esi
push 0x45b1e4
push 0x1c
call fcn.00402c81
jmp 0x40d56e
push 0x45a7d4
jmp 0x40d4e9
mov dword [ebp - 0x14], eax
jmp 0x40d56e
mov eax, dword [ebp - 0x68]
mov ecx, dword [0x45a790]
xor eax, ecx
movzx eax, ax
or eax, ebx
je 0x40d53d
cmp ecx, 0xffff
jne 0x40d525
cmp dword [0x45a794], ebx
je 0x40d53d
push 0x45b1e4
mov ecx, 0x45b4e8
call fcn.00402d47
mov dword [ebp - 0x14], 3
jmp 0x40d56e
push esi
call fcn.0040ec5b
test al, al
jne 0x40d562
cmp byte [0x45a884], al
je 0x40d559
push esi
call fcn.0040ec37
test al, al
jne 0x40d562
mov dword [ebp - 0x58], 1
jmp 0x40d56e
mov dword [ebp - 0x58], ebx
jmp 0x40d56e
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 0x40d65f
push 0x45b1e4
mov dword [0x45a880], ebx
call fcn.0040ca86
test al, al
mov eax, str.zx01
jne 0x40d5d7
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 0x40d608
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.0040f48b
cmp dword [0x45b1f8], 8
mov eax, 0x45b1e4
jb 0x40d626
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 0x40dd7d
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 0x40d69c
mov eax, dword [esi]
mov dword [ebp - 0x28], eax
cmp byte [0x45a87c], 0
je 0x40d733
mov ecx, dword [esi + 0x38]
cmp ecx, dword [0x45a880]
je 0x40d733
movzx eax, word [0x45a780]
cmp ecx, eax
jne 0x40d6ee
push 0x45b1e4
call fcn.0040ca86
test al, al
mov eax, str.zipx
jne 0x40d6d7
mov eax, 0x432fe0
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004014a3
push 0x45b1e4
call fcn.00406679
jmp 0x40d6f9
push ecx
push 0x45b1e4
call fcn.0040cb30
mov eax, dword [0x44a6b8]
mov edi, dword [0x45a6e8]
mov eax, dword [eax + 0x38]
mov dword [0x45a880], eax
test edi, edi
je 0x40d722
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.0040f48b
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.0041cb10
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 0x40d7fd
jl 0x40d772
cmp edi, ebx
jae 0x40d7fd
push 0x45b1e4
mov ecx, 0x45b4e8
call fcn.00402d47
cmp dword [ebp - 0x3c], 0
mov dword [ebp - 0x14], 2
jne 0x40d7f1
mov ecx, dword [0x45a710]
mov eax, ecx
mov edx, dword [0x45a714]
or eax, edx
je 0x40d7f1
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.0041cb10
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 0x40d7fd
jl 0x40d7e2
cmp edi, ebx
jae 0x40d7fd
push 0x45b1e4
mov ecx, 0x45b4e8
call fcn.00402d47
mov dword [ebp - 0x14], 3
jmp 0x40e261
cmp ecx, dword [0x45a708]
jne 0x40d842
cmp eax, dword [0x45a70c]
jne 0x40d842
cmp byte [0x45a87c], 0
jne 0x40d842
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 0x40d8d4
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.0040f9e3
cdq
mov esi, edx
mov ecx, eax
mov dword [0x45a6d0], ecx
mov dword [0x45a6d4], esi
cmp esi, ebx
jg 0x40d8b3
jl 0x40d7e2
cmp ecx, ebx
jbe 0x40d7e2
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.0040f5c9
test eax, eax
je 0x40d7e2
push edi
call fcn.0040ec7f
test al, al
jne 0x40d982
cmp dword [ebp - 0x3c], 0
mov edx, dword [0x45a714]
mov ecx, dword [0x45a710]
jne 0x40d923
mov eax, ecx
or eax, edx
je 0x40d923
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x7c], edx
mov dword [0x45a710], ebx
mov dword [0x45a714], ebx
jmp 0x40d947
or ecx, edx
jne 0x40d7e2
mov esi, dword [ebp - 0x6c]
mov eax, esi
mov edi, dword [ebp - 0x7c]
or eax, edi
je 0x40d7e2
mov dword [0x45a710], esi
mov dword [0x45a714], edi
mov eax, dword [0x44a6b8]
push dword [eax + 0x1c]
push dword [eax + 0x18]
call fcn.0040f80c
test eax, eax
jne 0x40d7e2
push 4
mov edi, 0x44a6b0
push edi
call fcn.0040f5c9
test eax, eax
je 0x40d7e2
push edi
call fcn.0040ec7f
test al, al
je 0x40d7e2
call fcn.004121ab
mov esi, eax
test esi, esi
je 0x40d9a4
push 0x45b1e4
mov ecx, 0x45b4e8
call fcn.00402d47
mov dword [ebp - 0x14], esi
jmp 0x40e261
cmp dword [0x45a7e8], 8
mov edi, 0x45a7d4
mov dword [0x45a7e4], ebx
mov eax, edi
jb 0x40d9bf
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.0040f0f0
test eax, eax
je 0x40d9fc
cmp eax, dword [ebp - 0x14]
jle 0x40d9e5
mov dword [ebp - 0x14], eax
cmp eax, 1
jle 0x40d9fc
push edi
push 0x45b1e4
push 0x1c
call fcn.00402c81
jmp 0x40e261
mov eax, dword [0x45a718]
test eax, eax
je 0x40da12
push eax
call fcn.004236a5
pop ecx
mov dword [0x45a718], ebx
movzx eax, word [0x45a742]
push ebx
push ebx
push 3
push eax
call fcn.0040f0f0
test eax, eax
je 0x40da34
cmp eax, dword [ebp - 0x14]
jle 0x40da2f
mov dword [ebp - 0x14], eax
cmp eax, 1
jg 0x40d9ea
movzx eax, word [0x45a742]
push 1
push eax
push dword [0x45a718]
call fcn.00411bdc
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.0040eac1
test al, al
je 0x40daa1
push edi
lea eax, [ebp + 0x370]
push eax
call fcn.00414176
push edi
push edi
call fcn.004066f1
mov eax, dword [ebp + 0x384]
mov byte [ebp - 4], 5
cmp eax, 0x10
jb 0x40dae0
mov ecx, dword [ebp + 0x370]
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], ecx
cmp eax, 0x1000
jb 0x40dad7
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.0041c3c6
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.0040e921
push 0x63
pop eax
mov cl, bl
mov byte [0x45a888], cl
cmp word [0x45a724], ax
jne 0x40db6d
movzx eax, word [0x45a742]
push 0x45a888
push eax
push dword [0x45a718]
call fcn.0040eb4f
mov cl, byte [0x45a888]
mov esi, dword [0x44a6b8]
add esi, 0x58
cmp byte [esi], 0
je 0x40db92
test cl, cl
jne 0x40db96
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 0x40dba2
mov ax, word [0x45a890]
mov word [0x45a724], ax
mov esi, dword [ebp - 0x28]
push esi
call fcn.004214ee
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.004141b4
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 0x40dbee
mov eax, edi
cmp word [eax], bx
je 0x40dc5c
mov eax, 0x45a7d4
test cl, cl
je 0x40dbfe
mov eax, edi
cmp word [eax + 2], bx
je 0x40dc5c
mov esi, dword [0x45a7e4]
push 2
pop eax
cmp esi, eax
jbe 0x40dc5c
mov ebx, dword [0x45a7e8]
cmp ebx, 8
mov ecx, 0x45a7d4
sbb dl, dl
inc dl
cmp ebx, 8
jb 0x40dc2a
mov ecx, edi
cmp word [ecx + eax*2], 0x3a
jne 0x40dc55
mov ecx, 0x45a7d4
test dl, dl
je 0x40dc3c
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 0x40dc17
xor ebx, ebx
mov eax, 0x45a7d4
push eax
push eax
call fcn.00405af6
cmp byte [ebp - 0xd], 0
je 0x40dc74
mov edx, ebx
mov esi, ebx
jmp 0x40dc80
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 0x40df13
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ecx + 0x38]
jne 0x40df13
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 0x40df13
jl 0x40dcec
cmp esi, edx
jae 0x40df13
sub edx, esi
sbb eax, edi
mov dword [ebp - 0xa4], eax
js 0x40df13
jg 0x40dd0a
cmp edx, 0x200
jbe 0x40df13
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 0x40de09
jl 0x40dd3e
cmp ecx, esi
ja 0x40de09
mov edx, ecx
mov ecx, dword [ebp - 0x34]
add edx, dword [ebp - 0x80]
adc ecx, dword [ebp - 0x84]
cmp ecx, edi
jg 0x40dd5e
jl 0x40de17
cmp edx, esi
jbe 0x40de17
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.0040f9e3
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 0x40e288
jmp 0x40d028
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 0x40de56
jl 0x40de3f
cmp dword [ebp - 0x30], esi
jae 0x40de56
mov eax, dword [ebp - 0x18]
cmp ecx, eax
jg 0x40dd5e
jl 0x40de59
cmp edx, edi
jae 0x40dd5e
jmp 0x40de59
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x90]
jmp 0x40decd
mov ecx, dword [ebp - 0x28]
mov edx, dword [edi]
cmp dword [edi + 4], ecx
jg 0x40de9a
jl 0x40de75
cmp edx, dword [ebp - 0x9c]
ja 0x40de9a
mov eax, dword [edi + 0xc]
mov ecx, edx
add ecx, dword [edi + 8]
adc eax, dword [edi + 4]
cmp eax, dword [ebp - 0x28]
jg 0x40dd5e
jl 0x40de97
cmp ecx, dword [ebp - 0x9c]
ja 0x40dd5e
mov eax, dword [ebp - 0x18]
cmp dword [edi + 4], eax
jg 0x40deca
mov ecx, dword [ebp - 0xa4]
jl 0x40deab
cmp edx, ecx
jae 0x40deca
add edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
adc eax, dword [edi + 4]
cmp eax, dword [ebp - 0x18]
jg 0x40dd5e
jl 0x40dec7
cmp edx, ecx
jae 0x40dd5e
mov eax, dword [ebp - 0x18]
add edi, 0x10
cmp edi, dword [ebp - 0x8c]
jne 0x40de61
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x88]
je 0x40defa
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 0x40df0d
lea ecx, [ebp - 0xd4]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.0040c16d
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 0x40df6b
cmp dword [0x45b1e0], 8
mov eax, 0x45b1cc
jb 0x40df61
mov eax, dword [0x45b1cc]
push 0x49
pop edx
cmp word [eax], dx
mov al, 1
jne 0x40df6d
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 0x40dd7d
mov al, byte [0x45b0d1]
test al, al
jne 0x40dfbf
cmp byte [0x45b063], al
jne 0x40dfe1
lea eax, [ebp + 0x340]
push eax
push 0x45b1fc
push edi
call fcn.0040453a
test al, al
je 0x40e261
mov al, byte [0x45b0d1]
test al, al
je 0x40dfe1
cmp byte [ebp - 0xd], 0
jne 0x40e261
push 0x5c
pop ecx
cmp word [0x45a724], cx
je 0x40e261
test al, al
jne 0x40e20d
cmp byte [ebp - 0xd], 0
mov esi, ebx
je 0x40e16a
cmp byte [0x45b03b], 0
jne 0x40e261
cmp dword [0x45a7e4], 0
je 0x40e261
cmp dword [0x45b040], 1
je 0x40e261
mov eax, dword [0x44a6b8]
cmp dword [eax + 0x34], 0
je 0x40e025
cmp dword [eax + 0x34], 0xb
jne 0x40e028
mov esi, dword [eax + 0x3c]
push edi
call fcn.0040444f
test al, al
jne 0x40e095
cmp byte [0x45b078], al
push esi
sete al
movzx eax, al
push eax
push edi
call fcn.00404740
test eax, eax
je 0x40e08f
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 0x40e08f
push edi
push 0x45b1e4
push 0x14
call fcn.00402c81
mov ecx, 0x45b4e8
call fcn.00403030
jmp 0x40e261
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 0x40e14e
lea eax, [ebp - 0x78]
push eax
call fcn.0040c678
add esi, 0x30
mov dword [ebp - 0x74], esi
jmp 0x40e156
lea ecx, [ebp - 0x78]
call fcn.0040c264
lea ecx, [ebp + 0x358]
mov byte [ebp - 4], 5
call fcn.00401770
jmp 0x40e261
push edi
call fcn.0040eea2
cmp eax, 0xffffffff
je 0x40e1d1
test eax, eax
je 0x40e1b5
cmp eax, 1
jne 0x40e20d
mov eax, dword [0x45b010]
cmp eax, 2
je 0x40e261
cmp byte [0x45b03c], 0
jne 0x40e261
cmp byte [0x45b03b], 0
jne 0x40e261
test eax, eax
je 0x40e1e2
cmp eax, 3
jne 0x40e20d
jmp 0x40e1e2
mov eax, dword [0x45b010]
cmp eax, 2
je 0x40e261
test eax, eax
je 0x40e1cc
cmp eax, 3
jne 0x40e20d
xor esi, esi
inc esi
jmp 0x40e1de
cmp byte [0x45b03b], 0
jne 0x40e261
test esi, esi
je 0x40e20d
push ebx
push 0x45a7f0
push dword [0x44a694]
push dword [0x44a690]
push edi
push 0x45afd0
call fcn.0040b67c
cmp eax, 6
je 0x40dd76
cmp eax, 1
je 0x40e261
mov eax, dword [0x44a6b8]
test byte [eax + 0x80], 1
je 0x40e24c
call fcn.004129a3
test eax, eax
je 0x40e24c
cmp eax, 9
je 0x40e27c
cmp eax, 0xc
jne 0x40e235
inc dword [ebp - 0x5c]
push 6
jmp 0x40e23f
cmp eax, dword [ebp - 0x14]
jle 0x40e23d
mov dword [ebp - 0x14], eax
push 0x1c
pop eax
push edi
push 0x45b1e4
push eax
jmp 0x40d9f2
lea eax, [ebp - 0x64]
push eax
call fcn.0040e40f
test eax, eax
je 0x40e261
cmp eax, dword [ebp - 0x14]
jle 0x40e261
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, dword [ebp - 0x38]
jge 0x40dd7d
mov ecx, dword [ebp - 0xa0]
jmp 0x40d67a
push 2
call fcn.00402c14
mov edi, dword [ebp - 0x14]
mov bl, 1
mov esi, dword [ebp - 0x78]
cmp esi, dword [ebp - 0x74]
je 0x40e300
add esi, 0x28
cmp dword [esi - 0x14], 8
lea eax, [esi - 0x28]
jb 0x40e29e
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 0x40e293
call fcn.0040b83b
test al, al
jne 0x40e32b
cmp dword [ebp - 0x58], 0
je 0x40e32b
cmp byte [0x45a87c], al
jne 0x40e32b
push 0x45b1e4
mov ecx, 0x45b4e8
call fcn.00402d47
test edi, edi
jne 0x40e32b
inc edi
mov esi, dword [ebp - 0x3c]
inc esi
cmp dword [0x44a6a8], 0
jne 0x40e36f
cmp dword [0x45b1e0], 8
mov eax, dword [0x45b1cc]
jae 0x40e34b
mov eax, 0x45b1cc
push 0x49
pop ecx
cmp word [eax], cx
je 0x40e36f
test bl, bl
jne 0x40e363
push 0x45b1e4
push 0x45
call fcn.00402c45
push 0xa
mov ecx, 0x45b4e8
call fcn.00402fe8
test esi, esi
jne 0x40e38b
cmp edi, 1
jg 0x40e38b
mov eax, dword [ebp - 0x40]
xor cx, cx
cmp cx, ax
sbb edi, edi
and edi, 0x46
add edi, 0xb
jmp 0x40e3b9
mov ecx, dword [ebp - 0x5c]
movzx eax, cx
cmp esi, eax
jne 0x40e39e
cmp edi, 1
jg 0x40e39e
push 0x52
jmp 0x40e3ac
cmp word [ebp - 0x40], 0
je 0x40e3af
cmp edi, 1
jg 0x40e3af
push 0x51
pop edi
jmp 0x40e3b9
test cx, cx
je 0x40e3b9
test edi, edi
jne 0x40e3b9
inc edi
lea eax, [ebp - 0x64]
push eax
mov ecx, eax
call fcn.0040c365
lea ecx, [ebp - 0x78]
call fcn.0040c9ca
lea ecx, [ebp - 0x4c]
call fcn.0040ce42
lea ecx, [ebp + 0x340]
call fcn.00401770
lea ecx, [ebp - 0x90]
call fcn.0040c9a6
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.0041c3d4
add ebp, 0x39c
leave
ret