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

Disassembly:
push ebp
lea ebp, [esp - 0x39c]
sub esp, 0x39c
push 0xffffffffffffffff
push 0x43047f
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 [0x4591f8], 8
mov eax, 0x4591e4
mov byte [ebp - 4], 1
jb 0x40ced8
mov eax, dword [0x4591e4]
push eax
lea ecx, [ebp + 0x370]
call fcn.004014a3
cmp byte [0x4590d1], 0
lea eax, [ebp + 0x370]
push eax
sete al
mov byte [ebp - 4], 2
movzx eax, al
push eax
call fcn.0040b7a7
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.0040caf2
lea eax, [ebp - 0x4c]
push eax
push 0x40
push dword [ebp - 0x4c]
call fcn.0040c5a6
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.0040bf8e
mov dword [ebp - 0x64], eax
mov al, byte [0x459498]
mov byte [ebp - 4], 5
mov dword [0x44866c], 1
mov byte [0x448670], al
mov dword [0x4486a8], ebx
mov dword [ebp - 0xc0], 0x88
call fcn.0040b79e
test al, al
jne 0x40e1eb
mov ecx, ebx
mov esi, ebx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x18], esi
cmp ecx, 0x40
jl 0x40cfb4
cmp byte [0x45887c], 0
je 0x40d4d8
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x4c]
cdq
idiv dword [ebp - 0xc0]
cmp ecx, eax
jl 0x40cfd5
lea eax, [ebp - 0xd]
push eax
lea eax, [ecx + 1]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040c3ef
mov eax, dword [ebp - 0x4c]
add eax, esi
mov esi, 0x4486b0
push 4
push esi
mov dword [0x4486b8], eax
call fcn.0040f52f
test eax, eax
je 0x40d4ca
push esi
call fcn.0040eb76
test al, al
je 0x40d466
call fcn.00411f88
test eax, eax
jne 0x40d461
cmp dword [0x4587e8], 8
mov esi, 0x4587d4
mov dword [0x4587e4], ebx
mov eax, esi
jb 0x40d02a
mov eax, dword [0x4587d4]
xor ecx, ecx
mov word [eax], cx
movzx eax, byte [0x458749]
push eax
movzx eax, word [0x458768]
push 0x45874c
push 2
push eax
call fcn.0040f056
test eax, eax
je 0x40d061
cmp eax, edi
jle 0x40d058
mov edi, eax
mov dword [ebp - 0x14], edi
cmp eax, 1
jg 0x40d44b
movzx eax, word [0x45876a]
push ebx
push ebx
push 3
push eax
call fcn.0040f056
test eax, eax
je 0x40d086
cmp eax, edi
jle 0x40d07d
mov dword [ebp - 0x14], eax
cmp eax, 1
jg 0x40d44b
movzx eax, word [0x45876a]
push ebx
push eax
push dword [0x458718]
call fcn.00411b42
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 [0x45874e], ax
jne 0x40d0d8
lea eax, [ebp - 0xe0]
push eax
movzx eax, word [0x45876a]
push eax
push dword [0x458718]
call fcn.0040eab2
mov ax, word [ebp - 0xd8]
mov word [0x45874e], ax
mov edi, dword [0x4486b8]
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 [0x45876c]
push eax
call fcn.0040f056
test eax, eax
je 0x40d10f
cmp eax, dword [ebp - 0x14]
jle 0x40d106
mov dword [ebp - 0x14], eax
cmp eax, 1
jg 0x40d45a
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 [0x4587ec]
movzx eax, word [0x45876a]
push eax
push dword [0x458718]
call fcn.0040ea24
test al, al
je 0x40d16c
mov esi, 0x4587d4
lea eax, [ebp + 0x370]
push esi
push eax
call fcn.004140e6
push esi
push esi
call fcn.004066f1
lea ecx, [ebp + 0x370]
mov byte [ebp - 4], 5
call fcn.00409f55
movzx ecx, word [0x458752]
movzx eax, word [0x458750]
shl ecx, 0x10
or ecx, eax
push ecx
mov ecx, dword [0x4486b8]
lea ecx, [ecx + 0x68]
call fcn.0040ac74
mov eax, dword [0x4486b8]
mov dword [eax + 0x70], ebx
mov dword [eax + 0x74], ebx
mov eax, dword [0x4486b8]
mov dword [eax + 0x78], ebx
mov dword [eax + 0x7c], ebx
mov ecx, dword [0x4486b8]
lea eax, [ecx + 0x78]
push eax
lea eax, [ecx + 0x70]
push eax
lea eax, [ecx + 0x68]
push eax
movzx eax, word [0x45876a]
push eax
push dword [0x458718]
call fcn.0040e884
movzx esi, word [0x45876a]
mov edi, dword [0x458718]
test esi, esi
je 0x40d1f1
test edi, edi
jne 0x40d2d9
mov byte [ebp - 0xd], bl
push 0x340
lea eax, [ebp]
push ebx
push eax
call fcn.0041dbb0
add esp, 0xc
lea ecx, [ebp]
call fcn.0040c77f
push 0x4587d4
lea ecx, [ebp + 0x28]
mov byte [ebp - 4], 7
call fcn.004021d7
mov eax, dword [0x458774]
mov dword [ebp + 0x24], eax
lea eax, [ebp + 0x24]
push ebx
push eax
push dword [0x458764]
mov eax, dword [0x4486b8]
push dword [0x458760]
push dword [eax + 0x34]
lea eax, [ebp + 0x28]
push eax
call fcn.00414124
mov edx, dword [0x4486b8]
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 [0x458760]
mov dword [ebp + 0x54], ecx
mov ecx, dword [0x458764]
mov dword [ebp + 0x70], eax
mov dword [ebp + 0x74], ecx
mov dword [edx + 0x10], ebx
cmp dword [edx + 0x14], 0x10
jb 0x40d280
mov edx, dword [edx]
mov byte [edx], bl
movzx esi, word [0x45876a]
mov edi, dword [0x458718]
test esi, esi
je 0x40d3dd
test edi, edi
je 0x40d3dd
jmp 0x40d33f
push edi
call fcn.0040f3dc
movzx eax, ax
mov dword [ebp - 0x2c], eax
lea eax, [edi + 2]
push eax
call fcn.0040f3dc
movzx ecx, ax
lea eax, [esi - 4]
cmp ecx, eax
ja 0x40d1f1
cmp dword [ebp - 0x2c], 0x17
je 0x40d2e3
push 0xfffffffffffffffc
add edi, 4
pop eax
sub eax, ecx
add edi, ecx
add esi, eax
cmp esi, 4
jae 0x40d2a4
jmp 0x40d1f1
push str.AES_0017
push 0x4587d4
push 0x4591e4
push 0x22
mov byte [ebp - 0xd], 1
call fcn.0040c655
jmp 0x40d1f4
push edi
call fcn.0040f3dc
movzx eax, ax
mov dword [ebp - 0x2c], eax
lea eax, [edi + 2]
push eax
call fcn.0040f3dc
movzx ecx, ax
lea eax, [esi - 4]
cmp ecx, eax
ja 0x40d3dd
cmp dword [ebp - 0x2c], 0x9903
jne 0x40d333
cmp ecx, 0x14
jae 0x40d349
push 0xfffffffffffffffc
add edi, 4
pop eax
sub eax, ecx
add edi, ecx
add esi, eax
cmp esi, 4
jae 0x40d302
jmp 0x40d3dd
push 0x10
lea eax, [edi + 8]
push eax
lea eax, [ebp + 0x388]
push eax
call fcn.0041d630
mov ecx, dword [0x4486b8]
lea eax, [ebp + 0x388]
add esp, 0xc
lea ecx, [ecx + 0x40]
push 0x10
push eax
call fcn.00409f79
push 0x5c
pop eax
cmp word [0x45874e], ax
je 0x40d3dd
mov eax, dword [0x4486b8]
lea ecx, [ebp + 0x358]
add eax, 0x40
push eax
call fcn.0040c721
push 0x4587d4
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.0040c048
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 0x40d427
push ebx
push ebx
push 6
push ebx
lea eax, [ebp]
mov ecx, 0x458fd0
push eax
call fcn.00402767
test eax, eax
je 0x40d427
call fcn.0040ec43
test eax, eax
je 0x40d424
mov ecx, dword [0x4486b8]
push 0x4587d4
call fcn.004021d7
mov esi, dword [ebp - 0x18]
inc dword [ebp - 0x38]
add esi, 0x88
mov dword [ebp - 0x18], esi
jmp 0x40d42a
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.0040c975
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x38]
jmp 0x40cfa2
push esi
push 0x4591e4
push 0x1c
call fcn.00402c81
jmp 0x40d4d1
push 0x4587d4
jmp 0x40d44c
mov dword [ebp - 0x14], eax
jmp 0x40d4d1
mov eax, dword [ebp - 0x68]
mov ecx, dword [0x458790]
xor eax, ecx
movzx eax, ax
or eax, ebx
je 0x40d4a0
cmp ecx, 0xffff
jne 0x40d488
cmp dword [0x458794], ebx
je 0x40d4a0
push 0x4591e4
mov ecx, 0x4594e8
call fcn.00402d47
mov dword [ebp - 0x14], 3
jmp 0x40d4d1
push esi
call fcn.0040ebbe
test al, al
jne 0x40d4c5
cmp byte [0x458884], al
je 0x40d4bc
push esi
call fcn.0040eb9a
test al, al
jne 0x40d4c5
mov dword [ebp - 0x58], 1
jmp 0x40d4d1
mov dword [ebp - 0x58], ebx
jmp 0x40d4d1
mov dword [ebp - 0x14], 0x33
mov dword [ebp - 0x20], 1
cmp byte [0x45887c], 0
mov eax, dword [0x458708]
mov dword [ebp - 0xb0], eax
mov eax, dword [0x45870c]
mov dword [ebp - 0xac], eax
mov eax, dword [0x4586c8]
mov dword [ebp - 0xb4], eax
mov eax, dword [0x4586d0]
mov dword [ebp - 0xb8], eax
mov eax, dword [0x4586d4]
mov dword [ebp - 0xbc], eax
je 0x40d5c2
push 0x4591e4
mov dword [0x458880], ebx
call fcn.0040c9e9
test al, al
mov eax, str.zx01
jne 0x40d53a
mov eax, 0x432fcc
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004014a3
push 0x4591e4
call fcn.00406679
mov edi, dword [0x4586e8]
test edi, edi
je 0x40d56b
mov eax, dword [edi]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x43224c]
mov ecx, edi
call esi
mov dword [0x4586e8], ebx
call fcn.0040f3f1
cmp dword [0x4591f8], 8
mov eax, 0x4591e4
jb 0x40d589
mov eax, dword [0x4591e4]
push eax
lea ecx, [ebp + 0x370]
call fcn.004014a3
cmp byte [0x4590d1], 0
lea eax, [ebp + 0x370]
push eax
sete al
mov byte [ebp - 4], 0xa
movzx eax, al
push eax
call fcn.0040b7a7
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 0x40dce0
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 [0x4486b8], esi
mov dword [ebp - 0x28], esi
cmp dword [esi + 0x14], 8
jb 0x40d5ff
mov eax, dword [esi]
mov dword [ebp - 0x28], eax
cmp byte [0x45887c], 0
je 0x40d696
mov ecx, dword [esi + 0x38]
cmp ecx, dword [0x458880]
je 0x40d696
movzx eax, word [0x458780]
cmp ecx, eax
jne 0x40d651
push 0x4591e4
call fcn.0040c9e9
test al, al
mov eax, str.zipx
jne 0x40d63a
mov eax, 0x432fe0
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004014a3
push 0x4591e4
call fcn.00406679
jmp 0x40d65c
push ecx
push 0x4591e4
call fcn.0040ca93
mov eax, dword [0x4486b8]
mov edi, dword [0x4586e8]
mov eax, dword [eax + 0x38]
mov dword [0x458880], eax
test edi, edi
je 0x40d685
mov eax, dword [edi]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x43224c]
mov ecx, edi
call esi
mov dword [0x4586e8], ebx
call fcn.0040f3f1
mov esi, dword [0x4486b8]
mov edi, dword [esi + 0x18]
add edi, dword [0x458710]
mov esi, dword [esi + 0x1c]
adc esi, dword [0x458714]
push ebx
push 0x2000
push esi
push edi
call fcn.0041ca80
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 0x40d760
jl 0x40d6d5
cmp edi, ebx
jae 0x40d760
push 0x4591e4
mov ecx, 0x4594e8
call fcn.00402d47
cmp dword [ebp - 0x3c], 0
mov dword [ebp - 0x14], 2
jne 0x40d754
mov ecx, dword [0x458710]
mov eax, ecx
mov edx, dword [0x458714]
or eax, edx
je 0x40d754
mov eax, dword [0x4486b8]
push ebx
push 0x2000
mov dword [0x458710], ebx
mov dword [0x458714], 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.0041ca80
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 0x40d760
jl 0x40d745
cmp edi, ebx
jae 0x40d760
push 0x4591e4
mov ecx, 0x4594e8
call fcn.00402d47
mov dword [ebp - 0x14], 3
jmp 0x40e1c4
cmp ecx, dword [0x458708]
jne 0x40d7a5
cmp eax, dword [0x45870c]
jne 0x40d7a5
cmp byte [0x45887c], 0
jne 0x40d7a5
mov eax, dword [0x4586c8]
mov edi, dword [ebp - 0x1c]
sub eax, edi
mov ecx, dword [0x4586c4]
sub eax, ecx
cdq
add dword [0x4586d0], eax
adc dword [0x4586d4], edx
lea eax, [edi + ecx]
mov dword [0x4586c8], eax
jmp 0x40d837
mov edi, dword [0x4586e8]
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 [0x4586e8]
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x43224c]
mov ecx, edi
call esi
push 0x2000
push dword [0x4586c4]
mov dword [0x458708], eax
mov dword [0x45870c], edx
call fcn.0040f949
cdq
mov esi, edx
mov ecx, eax
mov dword [0x4586d0], ecx
mov dword [0x4586d4], esi
cmp esi, ebx
jg 0x40d816
jl 0x40d745
cmp ecx, ebx
jbe 0x40d745
mov eax, dword [0x4586c4]
add eax, dword [ebp - 0x1c]
mov dword [0x4586c8], eax
mov eax, dword [ebp - 0x1c]
cdq
sub ecx, eax
mov dword [0x4586d0], ecx
sbb esi, edx
mov dword [0x4586d4], esi
push 4
mov edi, 0x4486b0
push edi
call fcn.0040f52f
test eax, eax
je 0x40d745
push edi
call fcn.0040ebe2
test al, al
jne 0x40d8e5
cmp dword [ebp - 0x3c], 0
mov edx, dword [0x458714]
mov ecx, dword [0x458710]
jne 0x40d886
mov eax, ecx
or eax, edx
je 0x40d886
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x7c], edx
mov dword [0x458710], ebx
mov dword [0x458714], ebx
jmp 0x40d8aa
or ecx, edx
jne 0x40d745
mov esi, dword [ebp - 0x6c]
mov eax, esi
mov edi, dword [ebp - 0x7c]
or eax, edi
je 0x40d745
mov dword [0x458710], esi
mov dword [0x458714], edi
mov eax, dword [0x4486b8]
push dword [eax + 0x1c]
push dword [eax + 0x18]
call fcn.0040f772
test eax, eax
jne 0x40d745
push 4
mov edi, 0x4486b0
push edi
call fcn.0040f52f
test eax, eax
je 0x40d745
push edi
call fcn.0040ebe2
test al, al
je 0x40d745
call fcn.00412111
mov esi, eax
test esi, esi
je 0x40d907
push 0x4591e4
mov ecx, 0x4594e8
call fcn.00402d47
mov dword [ebp - 0x14], esi
jmp 0x40e1c4
cmp dword [0x4587e8], 8
mov edi, 0x4587d4
mov dword [0x4587e4], ebx
mov eax, edi
jb 0x40d922
mov eax, dword [0x4587d4]
push ebx
xor ecx, ecx
push 0x458722
mov word [eax], cx
movzx eax, word [0x458740]
push 2
push eax
call fcn.0040f056
test eax, eax
je 0x40d95f
cmp eax, dword [ebp - 0x14]
jle 0x40d948
mov dword [ebp - 0x14], eax
cmp eax, 1
jle 0x40d95f
push edi
push 0x4591e4
push 0x1c
call fcn.00402c81
jmp 0x40e1c4
mov eax, dword [0x458718]
test eax, eax
je 0x40d975
push eax
call fcn.00423615
pop ecx
mov dword [0x458718], ebx
movzx eax, word [0x458742]
push ebx
push ebx
push 3
push eax
call fcn.0040f056
test eax, eax
je 0x40d997
cmp eax, dword [ebp - 0x14]
jle 0x40d992
mov dword [ebp - 0x14], eax
cmp eax, 1
jg 0x40d94d
movzx eax, word [0x458742]
push 1
push eax
push dword [0x458718]
call fcn.00411b42
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 [0x4587ec]
movzx eax, word [0x458742]
push eax
push dword [0x458718]
call fcn.0040ea24
test al, al
je 0x40da04
push edi
lea eax, [ebp + 0x370]
push eax
call fcn.004140e6
push edi
push edi
call fcn.004066f1
mov eax, dword [ebp + 0x384]
mov byte [ebp - 4], 5
cmp eax, 0x10
jb 0x40da43
mov ecx, dword [ebp + 0x370]
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], ecx
cmp eax, 0x1000
jb 0x40da3a
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.0041c336
pop ecx
pop ecx
mov edx, dword [0x4486b8]
push 0x458800
push 0x4587f8
push 0x4587f0
mov eax, dword [edx + 0x68]
mov ecx, dword [edx + 0x6c]
mov dword [0x4587f0], eax
mov dword [0x4587f4], ecx
mov eax, dword [edx + 0x70]
mov ecx, dword [edx + 0x74]
mov dword [0x4587f8], eax
mov dword [0x4587fc], ecx
mov eax, dword [edx + 0x78]
mov ecx, dword [edx + 0x7c]
mov dword [0x458800], eax
movzx eax, word [0x458742]
push eax
push dword [0x458718]
mov dword [0x458804], ecx
call fcn.0040e884
push 0x63
pop eax
mov cl, bl
mov byte [0x458888], cl
cmp word [0x458724], ax
jne 0x40dad0
movzx eax, word [0x458742]
push 0x458888
push eax
push dword [0x458718]
call fcn.0040eab2
mov cl, byte [0x458888]
mov esi, dword [0x4486b8]
add esi, 0x58
cmp byte [esi], 0
je 0x40daf5
test cl, cl
jne 0x40daf9
mov edi, 0x458888
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov cl, byte [0x458888]
mov edi, 0x4587d4
test cl, cl
je 0x40db05
mov ax, word [0x458890]
mov word [0x458724], ax
mov esi, dword [ebp - 0x28]
push esi
call fcn.0042145e
pop ecx
push eax
push esi
mov ecx, edi
call fcn.0040180c
mov ecx, dword [0x4486b8]
push ebx
lea eax, [ecx + 0x3c]
push eax
push dword [ecx + 0x2c]
push dword [ecx + 0x28]
push dword [ecx + 0x34]
push edi
call fcn.00414124
mov edx, dword [0x4587e8]
cmp edx, 8
mov byte [ebp - 0xd], al
mov eax, edi
mov edi, dword [0x4587d4]
sbb cl, cl
inc cl
cmp edx, 8
jb 0x40db51
mov eax, edi
cmp word [eax], bx
je 0x40dbbf
mov eax, 0x4587d4
test cl, cl
je 0x40db61
mov eax, edi
cmp word [eax + 2], bx
je 0x40dbbf
mov esi, dword [0x4587e4]
push 2
pop eax
cmp esi, eax
jbe 0x40dbbf
mov ebx, dword [0x4587e8]
cmp ebx, 8
mov ecx, 0x4587d4
sbb dl, dl
inc dl
cmp ebx, 8
jb 0x40db8d
mov ecx, edi
cmp word [ecx + eax*2], 0x3a
jne 0x40dbb8
mov ecx, 0x4587d4
test dl, dl
je 0x40db9f
mov ecx, edi
push 0x5f
pop edx
mov word [ecx + eax*2], dx
mov esi, dword [0x4587e4]
mov edi, dword [0x4587d4]
mov ebx, dword [0x4587e8]
inc eax
cmp eax, esi
jb 0x40db7a
xor ebx, ebx
mov eax, 0x4587d4
push eax
push eax
call fcn.00405af6
cmp byte [ebp - 0xd], 0
je 0x40dbd7
mov edx, ebx
mov esi, ebx
jmp 0x40dbe3
mov edx, dword [0x448688]
mov esi, dword [0x44868c]
movzx ecx, word [0x458742]
movzx eax, word [0x458740]
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 [0x4486b8]
cmp eax, 0xffffffff
je 0x40de76
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ecx + 0x38]
jne 0x40de76
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 0x40de76
jl 0x40dc4f
cmp esi, edx
jae 0x40de76
sub edx, esi
sbb eax, edi
mov dword [ebp - 0xa4], eax
js 0x40de76
jg 0x40dc6d
cmp edx, 0x200
jbe 0x40de76
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 0x40dd6c
jl 0x40dca1
cmp ecx, esi
ja 0x40dd6c
mov edx, ecx
mov ecx, dword [ebp - 0x34]
add edx, dword [ebp - 0x80]
adc ecx, dword [ebp - 0x84]
cmp ecx, edi
jg 0x40dcc1
jl 0x40dd7a
cmp edx, esi
jbe 0x40dd7a
push 0x4587d4
push 0x4591e4
push 0x1c
call fcn.00402c81
mov dword [ebp - 0x14], 3
mov dword [ebp - 0x20], 1
mov edi, dword [0x4586e8]
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 [0x4586e8]
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x43224c]
mov ecx, edi
call esi
push 0x2000
push dword [0x4586c4]
mov dword [0x458708], eax
mov dword [0x45870c], edx
call fcn.0040f949
mov eax, dword [ebp - 0xb4]
inc dword [ebp - 0x54]
cmp dword [ebp - 0x20], 0
mov edi, dword [ebp - 0x14]
mov dword [0x4586c8], eax
mov eax, dword [ebp - 0xb8]
mov dword [0x4586d0], eax
mov eax, dword [ebp - 0xbc]
mov dword [0x4586d4], eax
jne 0x40e1eb
jmp 0x40cf8b
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 0x40ddb9
jl 0x40dda2
cmp dword [ebp - 0x30], esi
jae 0x40ddb9
mov eax, dword [ebp - 0x18]
cmp ecx, eax
jg 0x40dcc1
jl 0x40ddbc
cmp edx, edi
jae 0x40dcc1
jmp 0x40ddbc
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x90]
jmp 0x40de30
mov ecx, dword [ebp - 0x28]
mov edx, dword [edi]
cmp dword [edi + 4], ecx
jg 0x40ddfd
jl 0x40ddd8
cmp edx, dword [ebp - 0x9c]
ja 0x40ddfd
mov eax, dword [edi + 0xc]
mov ecx, edx
add ecx, dword [edi + 8]
adc eax, dword [edi + 4]
cmp eax, dword [ebp - 0x28]
jg 0x40dcc1
jl 0x40ddfa
cmp ecx, dword [ebp - 0x9c]
ja 0x40dcc1
mov eax, dword [ebp - 0x18]
cmp dword [edi + 4], eax
jg 0x40de2d
mov ecx, dword [ebp - 0xa4]
jl 0x40de0e
cmp edx, ecx
jae 0x40de2d
add edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
adc eax, dword [edi + 4]
cmp eax, dword [ebp - 0x18]
jg 0x40dcc1
jl 0x40de2a
cmp edx, ecx
jae 0x40dcc1
mov eax, dword [ebp - 0x18]
add edi, 0x10
cmp edi, dword [ebp - 0x8c]
jne 0x40ddc4
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x88]
je 0x40de5d
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 0x40de70
lea ecx, [ebp - 0xd4]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.0040c0d0
mov ecx, dword [0x4486b8]
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 [0x4590d1]
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 0x40dece
cmp dword [0x4591e0], 8
mov eax, 0x4591cc
jb 0x40dec4
mov eax, dword [0x4591cc]
push 0x49
pop edx
cmp word [eax], dx
mov al, 1
jne 0x40ded0
mov al, bl
push ebx
push eax
test cl, cl
mov edi, 0x4587d4
sete al
movzx eax, al
push eax
push edi
call fcn.0040b7c0
test al, al
je 0x40dce0
mov al, byte [0x4590d1]
test al, al
jne 0x40df22
cmp byte [0x459063], al
jne 0x40df44
lea eax, [ebp + 0x340]
push eax
push 0x4591fc
push edi
call fcn.0040453a
test al, al
je 0x40e1c4
mov al, byte [0x4590d1]
test al, al
je 0x40df44
cmp byte [ebp - 0xd], 0
jne 0x40e1c4
push 0x5c
pop ecx
cmp word [0x458724], cx
je 0x40e1c4
test al, al
jne 0x40e170
cmp byte [ebp - 0xd], 0
mov esi, ebx
je 0x40e0cd
cmp byte [0x45903b], 0
jne 0x40e1c4
cmp dword [0x4587e4], 0
je 0x40e1c4
cmp dword [0x459040], 1
je 0x40e1c4
mov eax, dword [0x4486b8]
cmp dword [eax + 0x34], 0
je 0x40df88
cmp dword [eax + 0x34], 0xb
jne 0x40df8b
mov esi, dword [eax + 0x3c]
push edi
call fcn.0040444f
test al, al
jne 0x40dff8
cmp byte [0x459078], al
push esi
sete al
movzx eax, al
push eax
push edi
call fcn.00404740
test eax, eax
je 0x40dff2
movzx eax, byte [0x45902b]
push eax
push 1
push edi
call fcn.00404235
cmp byte [0x459078], 0
push esi
sete al
movzx eax, al
push eax
push edi
call fcn.00404740
test eax, eax
je 0x40dff2
push edi
push 0x4591e4
push 0x14
call fcn.00402c81
mov ecx, 0x4594e8
call fcn.00403030
jmp 0x40e1c4
inc dword [0x4486a8]
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 [0x4587f0]
mov ecx, dword [0x4587f4]
mov esi, dword [ebp - 0x74]
mov dword [ebp + 0x370], eax
mov eax, dword [0x458800]
mov dword [ebp + 0x378], eax
mov eax, dword [0x4587f8]
mov dword [ebp + 0x374], ecx
mov ecx, dword [0x458804]
mov dword [ebp + 0x380], eax
lea eax, [ebp + 0x358]
mov dword [ebp + 0x37c], ecx
mov ecx, dword [0x4587fc]
push eax
mov dword [ebp + 0x384], ecx
push esi
cmp esi, dword [ebp - 0x70]
je 0x40e0b1
lea eax, [ebp - 0x78]
push eax
call fcn.0040c5db
add esi, 0x30
mov dword [ebp - 0x74], esi
jmp 0x40e0b9
lea ecx, [ebp - 0x78]
call fcn.0040c1c7
lea ecx, [ebp + 0x358]
mov byte [ebp - 4], 5
call fcn.00401770
jmp 0x40e1c4
push edi
call fcn.0040ee05
cmp eax, 0xffffffff
je 0x40e134
test eax, eax
je 0x40e118
cmp eax, 1
jne 0x40e170
mov eax, dword [0x459010]
cmp eax, 2
je 0x40e1c4
cmp byte [0x45903c], 0
jne 0x40e1c4
cmp byte [0x45903b], 0
jne 0x40e1c4
test eax, eax
je 0x40e145
cmp eax, 3
jne 0x40e170
jmp 0x40e145
mov eax, dword [0x459010]
cmp eax, 2
je 0x40e1c4
test eax, eax
je 0x40e12f
cmp eax, 3
jne 0x40e170
xor esi, esi
inc esi
jmp 0x40e141
cmp byte [0x45903b], 0
jne 0x40e1c4
test esi, esi
je 0x40e170
push ebx
push 0x4587f0
push dword [0x448694]
push dword [0x448690]
push edi
push 0x458fd0
call fcn.0040b67c
cmp eax, 6
je 0x40dcd9
cmp eax, 1
je 0x40e1c4
mov eax, dword [0x4486b8]
test byte [eax + 0x80], 1
je 0x40e1af
call fcn.00412913
test eax, eax
je 0x40e1af
cmp eax, 9
je 0x40e1df
cmp eax, 0xc
jne 0x40e198
inc dword [ebp - 0x5c]
push 6
jmp 0x40e1a2
cmp eax, dword [ebp - 0x14]
jle 0x40e1a0
mov dword [ebp - 0x14], eax
push 0x1c
pop eax
push edi
push 0x4591e4
push eax
jmp 0x40d955
lea eax, [ebp - 0x64]
push eax
call fcn.0040e372
test eax, eax
je 0x40e1c4
cmp eax, dword [ebp - 0x14]
jle 0x40e1c4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, dword [ebp - 0x38]
jge 0x40dce0
mov ecx, dword [ebp - 0xa0]
jmp 0x40d5dd
push 2
call fcn.00402c14
mov edi, dword [ebp - 0x14]
mov bl, 1
mov esi, dword [ebp - 0x78]
cmp esi, dword [ebp - 0x74]
je 0x40e263
add esi, 0x28
cmp dword [esi - 0x14], 8
lea eax, [esi - 0x28]
jb 0x40e201
mov eax, dword [eax]
push eax
lea ecx, [ebp + 0x370]
call fcn.004014a3
mov eax, dword [0x4591a8]
mov ecx, dword [0x4591a4]
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 [0x4591a0]
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 0x40e1f6
call fcn.0040b79e
test al, al
jne 0x40e28e
cmp dword [ebp - 0x58], 0
je 0x40e28e
cmp byte [0x45887c], al
jne 0x40e28e
push 0x4591e4
mov ecx, 0x4594e8
call fcn.00402d47
test edi, edi
jne 0x40e28e
inc edi
mov esi, dword [ebp - 0x3c]
inc esi
cmp dword [0x4486a8], 0
jne 0x40e2d2
cmp dword [0x4591e0], 8
mov eax, dword [0x4591cc]
jae 0x40e2ae
mov eax, 0x4591cc
push 0x49
pop ecx
cmp word [eax], cx
je 0x40e2d2
test bl, bl
jne 0x40e2c6
push 0x4591e4
push 0x45
call fcn.00402c45
push 0xa
mov ecx, 0x4594e8
call fcn.00402fe8
test esi, esi
jne 0x40e2ee
cmp edi, 1
jg 0x40e2ee
mov eax, dword [ebp - 0x40]
xor cx, cx
cmp cx, ax
sbb edi, edi
and edi, 0x46
add edi, 0xb
jmp 0x40e31c
mov ecx, dword [ebp - 0x5c]
movzx eax, cx
cmp esi, eax
jne 0x40e301
cmp edi, 1
jg 0x40e301
push 0x52
jmp 0x40e30f
cmp word [ebp - 0x40], 0
je 0x40e312
cmp edi, 1
jg 0x40e312
push 0x51
pop edi
jmp 0x40e31c
test cx, cx
je 0x40e31c
test edi, edi
jne 0x40e31c
inc edi
lea eax, [ebp - 0x64]
push eax
mov ecx, eax
call fcn.0040c2c8
lea ecx, [ebp - 0x78]
call fcn.0040c92d
lea ecx, [ebp - 0x4c]
call fcn.0040cda5
lea ecx, [ebp + 0x340]
call fcn.00401770
lea ecx, [ebp - 0x90]
call fcn.0040c909
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.0041c344
add ebp, 0x39c
leave
ret