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

Disassembly:
push ebp
sub esp, 0x74
mov eax, 0x42708e
call fcn.00413a94
mov eax, 0x5490
call fcn.00413ac0
or dword [ebp + 0x44], 0xffffffff
or dword [ebp + 4], 0xffffffff
or dword [ebp + 0x24], 0xffffffff
push ebx
xor ebx, ebx
mov eax, ebx
mov dword [ebp + 0x20], ebx
push esi
mov esi, ebx
mov dword [ebp + 0x40], eax
mov ecx, ebx
mov dword [ebp + 0x74], esi
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x50], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x48], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ebx
mov byte [ebp - 0x4c], bl
cmp byte [0x459dc1], bl
push 0x45ceda
sete al
mov dword [ebp - 4], ebx
movzx eax, al
push eax
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x28], ebx
call fcn.004078df
push 0x40
lea ecx, [ebp - 0x80]
mov dword [ebp + 0x14], ebx
mov dword [ebp], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x68], ebx
call fcn.00407dfc
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 1
call fcn.00406902
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x28], bl
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 3
call fcn.00406902
mov al, byte [0x458ce4]
mov byte [ebp - 4], 4
mov dword [0x43d51c], 1
mov byte [0x43d520], al
mov dword [0x43d558], ebx
push edi
call fcn.004078d6
test al, al
jne 0x409142
mov eax, ebx
mov edi, ebx
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x6c], edi
cmp eax, 0x40
jl 0x408275
cmp byte [0x44e80c], 0
je 0x4085c0
cmp eax, dword [ebp - 0x7c]
jl 0x408284
inc eax
lea ecx, [ebp - 0x80]
push eax
call fcn.00408091
mov eax, dword [ebp - 0x80]
add eax, edi
mov edi, 0x43d560
push 4
push edi
mov dword [0x43d568], eax
call fcn.0040a265
test eax, eax
je 0x408768
push edi
call fcn.00409ac0
test al, al
je 0x4086f8
call fcn.0040cb6f
test eax, eax
jne 0x4086f4
mov word [0x44d684], ax
movzx eax, byte [0x44d5f9]
push eax
movzx eax, word [0x44d618]
push 0x44d5fc
push 2
push eax
call fcn.00409e61
test eax, eax
je 0x4082f6
cmp eax, esi
jle 0x4082ed
mov esi, eax
mov dword [ebp + 0x74], esi
cmp eax, 1
jg 0x4085a8
movzx eax, word [0x44d61a]
push ebx
push ebx
push 3
push eax
call fcn.00409e61
test eax, eax
je 0x40831d
cmp eax, esi
jle 0x408314
mov esi, eax
mov dword [ebp + 0x74], esi
cmp eax, 1
jg 0x4085a8
movzx eax, word [0x44d61a]
push ebx
push eax
push dword [0x44d5c8]
call fcn.0040c773
movzx eax, word [0x44d61a]
push 0x44d5fe
push eax
push dword [0x44d5c8]
call fcn.004099d9
movzx eax, word [0x44d61c]
push ebx
push ebx
push ebx
push eax
call fcn.00409e61
test eax, eax
je 0x40836f
cmp eax, esi
jle 0x408366
mov esi, eax
mov dword [ebp + 0x74], esi
cmp eax, 1
jg 0x4085a8
push 0x3000
lea eax, [ebp - 0x549c]
push eax
push dword [0x44e684]
movzx eax, word [0x44d61a]
push eax
push dword [0x44d5c8]
call fcn.00409943
test al, al
je 0x4083bb
push 0x800
mov edi, 0x44d684
lea eax, [ebp - 0x549c]
push edi
push eax
call fcn.0040e1c9
push 0x800
push edi
push edi
call fcn.00403967
movzx ecx, word [0x44d602]
movzx eax, word [0x44d600]
shl ecx, 0x10
or ecx, eax
push ecx
mov ecx, dword [0x43d568]
lea ecx, [ecx + 0x28]
call fcn.0040718c
mov eax, dword [0x43d568]
mov dword [eax + 0x30], ebx
mov dword [eax + 0x34], ebx
mov eax, dword [0x43d568]
mov dword [eax + 0x38], ebx
mov dword [eax + 0x3c], ebx
mov ecx, dword [0x43d568]
lea eax, [ecx + 0x38]
push eax
lea eax, [ecx + 0x30]
push eax
lea eax, [ecx + 0x28]
push eax
movzx eax, word [0x44d61a]
push eax
push dword [0x44d5c8]
call fcn.004097d5
movzx edi, word [0x44d61a]
mov ecx, dword [0x44d5c8]
mov dword [ebp + 0x60], ecx
test edi, edi
je 0x408434
test ecx, ecx
jne 0x40855b
mov byte [ebp + 0x73], bl
lea ecx, [ebp - 0x249c]
call fcn.00407e1e
push 0x2310
lea eax, [ebp - 0x249c]
mov byte [ebp - 4], 5
push ebx
push eax
call fcn.00414bd0
add esp, 0xc
lea eax, [ebp - 0x2474]
push 0x800
push 0x44d684
push eax
call fcn.004068cd
lea eax, [ebp - 0x2474]
push eax
call fcn.0040386b
mov edi, eax
lea eax, [ebp - 0x2474]
cmp edi, eax
jbe 0x40849b
movzx eax, word [edi]
push eax
call fcn.0040373d
test al, al
je 0x40849b
xor eax, eax
mov word [edi], ax
cmp byte [ebp + 0x73], 0
mov eax, dword [0x43d568]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x145c], ecx
mov ecx, dword [0x44d614]
mov dword [ebp - 0x1458], eax
mov eax, dword [0x44d610]
mov dword [ebp - 0x143c], eax
mov dword [ebp - 0x1438], ecx
jne 0x408587
push ebx
push ebx
push ebx
push 6
push ebx
lea eax, [ebp - 0x249c]
mov ecx, 0x452bc0
push eax
call fcn.004014fa
test eax, eax
je 0x408587
call fcn.00409b8d
test eax, eax
je 0x408584
push 0x44d684
lea ecx, [ebp - 0x140]
call fcn.004069e4
mov edi, dword [ebp + 0x6c]
inc dword [ebp + 0x54]
add edi, 0x48
mov dword [ebp + 0x6c], edi
jmp 0x40858a
push ecx
call fcn.0040a112
movzx eax, ax
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x60]
add eax, 2
push eax
call fcn.0040a112
movzx edx, ax
lea eax, [edi - 4]
cmp edx, eax
ja 0x408434
cmp dword [ebp + 0x38], 0x17
je 0x408565
mov ecx, dword [ebp + 0x60]
push 0xfffffffffffffffc
add ecx, 4
pop eax
add ecx, edx
sub eax, edx
mov dword [ebp + 0x60], ecx
add edi, eax
cmp edi, 4
jae 0x40851d
jmp 0x408434
push str.AES_0017
push 0x44d684
push 0x45ceda
push 0x22
mov byte [ebp + 0x73], 1
call fcn.00407da7
jmp 0x408437
inc dword [ebp + 0x40]
mov edi, dword [ebp + 0x6c]
add dword [ebp + 0x14], 1
lea ecx, [ebp - 0x1474]
mov byte [ebp - 4], 4
adc dword [ebp], ebx
call fcn.00406428
mov eax, dword [ebp + 0x54]
jmp 0x408263
push 0x44d684
push 0x45ceda
push 0x1c
call fcn.00401663
mov dword [ebp + 0x68], 1
mov edi, dword [ebp + 0x74]
cmp byte [0x44e80c], 0
mov eax, dword [0x44d5b8]
mov dword [ebp - 0x48], eax
mov eax, dword [0x44d5bc]
mov dword [ebp - 0x44], eax
mov eax, dword [0x44d578]
mov dword [ebp - 0x10], eax
mov eax, dword [0x44d580]
mov dword [ebp - 0x18], eax
mov eax, dword [0x44d584]
mov dword [ebp - 0x20], eax
je 0x408664
push 0x45ceda
mov dword [0x44e810], ebx
call fcn.004080ab
test al, al
mov eax, str.zx01
jne 0x408612
mov eax, 0x428ef4
push 0x800
push eax
push 0x45ceda
call fcn.004038fd
mov eax, dword [0x44d598]
test eax, eax
je 0x408641
mov eax, dword [eax]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x42822c]
mov ecx, dword [0x44d598]
call esi
mov dword [0x44d598], ebx
call fcn.0040a127
cmp byte [0x459dc1], 0
push 0x45ceda
sete al
movzx eax, al
push eax
call fcn.004078df
mov eax, ebx
mov dword [ebp + 0x38], ebx
cmp dword [ebp + 0x54], eax
jle 0x408cea
mov ecx, dword [ebp + 0x20]
shl ecx, 6
mov dword [ebp - 0x40], ecx
add ecx, eax
imul eax, eax, 0x48
mov dword [ebp + 0x44], ecx
lea ecx, [ebp - 0x140]
add eax, dword [ebp - 0x80]
mov dword [0x43d568], eax
call fcn.00406a20
cmp byte [0x44e80c], 0
mov esi, dword [0x43d568]
mov dword [ebp + 0x3c], eax
je 0x4087b9
mov ecx, dword [esi + 0x20]
cmp ecx, dword [0x44e810]
je 0x4087b9
movzx eax, word [0x44d630]
cmp ecx, eax
jne 0x40876c
mov esi, 0x45ceda
push esi
call fcn.004080ab
test al, al
mov eax, str.zipx
jne 0x4086e3
mov eax, 0x428f08
push 0x800
push eax
push esi
call fcn.004038fd
jmp 0x40877c
mov edi, eax
jmp 0x40872c
mov eax, dword [ebp + 0x14]
mov ecx, dword [0x44d640]
xor eax, ecx
movzx eax, ax
or eax, ebx
je 0x408731
cmp ecx, 0xffff
jne 0x40871a
cmp dword [0x44d644], ebx
je 0x408731
push 0x45ceda
mov ecx, 0x452b44
call fcn.004016ef
push 3
pop edi
mov dword [ebp + 0x74], edi
jmp 0x40875c
push edi
call fcn.00409b08
test al, al
jne 0x408756
cmp byte [0x44e814], al
je 0x40874d
push edi
call fcn.00409ae4
test al, al
jne 0x408756
mov dword [ebp + 0x1c], 1
jmp 0x408759
mov dword [ebp + 0x1c], ebx
mov edi, dword [ebp + 0x74]
mov dword [ebp + 0x68], 1
jmp 0x4085c3
push 0x33
jmp 0x40872b
push ecx
push 0x800
push 0x45ceda
call fcn.004080e5
mov eax, dword [0x43d568]
mov eax, dword [eax + 0x20]
mov dword [0x44e810], eax
mov eax, dword [0x44d598]
test eax, eax
je 0x4087a8
mov eax, dword [eax]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x42822c]
mov ecx, dword [0x44d598]
call esi
mov dword [0x44d598], ebx
call fcn.0040a127
mov esi, dword [0x43d568]
mov eax, dword [esi]
add eax, dword [0x44d5c0]
mov esi, dword [esi + 4]
adc esi, dword [0x44d5c4]
push ebx
push 0x2000
push esi
push eax
mov dword [ebp + 0xc], eax
call fcn.00413ea0
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0xc]
mov ecx, eax
sub ecx, dword [ebp + 0x64]
mov dword [ebp + 0x6c], esi
sbb dword [ebp + 0x6c], edx
cmp esi, ebx
jg 0x40888a
jl 0x4087fd
cmp eax, ebx
jae 0x40888a
push 0x45ceda
mov ecx, 0x452b44
call fcn.004016ef
cmp dword [ebp + 0x44], 0
push 2
pop edi
mov dword [ebp + 0x74], edi
jne 0x40887f
mov ecx, dword [0x44d5c0]
mov eax, ecx
mov edx, dword [0x44d5c4]
or eax, edx
je 0x40887f
mov eax, dword [0x43d568]
push ebx
push 0x2000
mov dword [0x44d5c0], ebx
mov dword [0x44d5c4], ebx
mov esi, dword [eax + 4]
mov dword [ebp + 0x10], ecx
mov ecx, dword [eax]
push esi
push ecx
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x5c], ecx
call fcn.00413ea0
mov ecx, dword [ebp + 0x5c]
sub ecx, eax
mov dword [ebp + 0x64], eax
mov eax, esi
sbb eax, edx
mov dword [ebp + 0x6c], eax
cmp esi, ebx
jg 0x40888d
jl 0x408870
cmp dword [ebp + 0x5c], ebx
jae 0x40888d
push 0x45ceda
mov ecx, 0x452b44
call fcn.004016ef
push 3
pop edi
mov dword [ebp + 0x74], edi
jmp 0x408f0b
mov eax, dword [ebp + 0x6c]
cmp ecx, dword [0x44d5b8]
jne 0x4088d2
cmp eax, dword [0x44d5bc]
jne 0x4088d2
cmp byte [0x44e80c], 0
jne 0x4088d2
mov eax, dword [0x44d578]
mov esi, dword [ebp + 0x64]
sub eax, esi
mov ecx, dword [0x44d574]
sub eax, ecx
cdq
add dword [0x44d580], eax
adc dword [0x44d584], edx
lea eax, [esi + ecx]
mov dword [0x44d578], eax
jmp 0x408967
mov edi, dword [0x44d598]
push ebx
push dword [ebp + 0x6c]
mov eax, dword [edi]
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x42822c]
mov ecx, edi
call esi
mov edi, dword [0x44d598]
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x42822c]
mov ecx, edi
call esi
push 0x2000
push dword [0x44d574]
mov dword [0x44d5b8], eax
mov dword [0x44d5bc], edx
call fcn.0040a67c
cdq
mov esi, edx
mov ecx, eax
mov dword [0x44d580], ecx
mov dword [0x44d584], esi
cmp esi, ebx
jg 0x408943
jl 0x408870
cmp ecx, ebx
jbe 0x408870
mov eax, dword [0x44d574]
add eax, dword [ebp + 0x64]
mov edi, dword [ebp + 0x74]
mov dword [0x44d578], eax
mov eax, dword [ebp + 0x64]
cdq
sub ecx, eax
mov dword [0x44d580], ecx
sbb esi, edx
mov dword [0x44d584], esi
push 4
mov esi, 0x43d560
push esi
call fcn.0040a265
test eax, eax
je 0x408870
push esi
call fcn.00409b2c
test al, al
jne 0x408a14
cmp dword [ebp + 0x44], 0
mov edx, dword [0x44d5c4]
mov ecx, dword [0x44d5c0]
jne 0x4089b6
mov eax, ecx
or eax, edx
je 0x4089b6
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0x34], edx
mov dword [0x44d5c0], ebx
mov dword [0x44d5c4], ebx
jmp 0x4089da
or ecx, edx
jne 0x408870
mov esi, dword [ebp + 0x10]
mov eax, esi
mov ecx, dword [ebp + 0x34]
or eax, ecx
je 0x408870
mov dword [0x44d5c0], esi
mov dword [0x44d5c4], ecx
mov eax, dword [0x43d568]
push dword [eax + 4]
push dword [eax]
call fcn.0040a4a5
test eax, eax
jne 0x408870
push 4
mov esi, 0x43d560
push esi
call fcn.0040a265
test eax, eax
je 0x408870
push esi
call fcn.00409b2c
test al, al
je 0x408870
call fcn.0040cce1
mov esi, eax
test esi, esi
je 0x408a35
push 0x45ceda
mov ecx, 0x452b44
call fcn.004016ef
mov edi, esi
jmp 0x408882
push ebx
xor eax, eax
push 0x44d5d2
mov word [0x44d684], ax
movzx eax, word [0x44d5f0]
push 2
push eax
call fcn.00409e61
test eax, eax
je 0x408a7a
cmp eax, edi
jle 0x408a5f
mov edi, eax
mov dword [ebp + 0x74], edi
cmp eax, 1
jle 0x408a7a
push 0x44d684
push 0x45ceda
push 0x1c
call fcn.00401663
jmp 0x408f0b
mov eax, dword [0x44d5c8]
test eax, eax
je 0x408a90
push eax
call fcn.004187ae
pop ecx
mov dword [0x44d5c8], ebx
movzx eax, word [0x44d5f2]
push ebx
push ebx
push 3
push eax
call fcn.00409e61
test eax, eax
je 0x408ab3
cmp eax, edi
jle 0x408aae
mov edi, eax
mov dword [ebp + 0x74], edi
cmp eax, 1
jg 0x408a64
movzx eax, word [0x44d5f2]
push 1
push eax
push dword [0x44d5c8]
call fcn.0040c773
push 0x3000
lea eax, [ebp - 0x549c]
push eax
push dword [0x44e684]
movzx eax, word [0x44d5f2]
push eax
push dword [0x44d5c8]
call fcn.00409943
mov edi, 0x800
mov esi, 0x44d684
test al, al
je 0x408b11
push edi
push esi
lea eax, [ebp - 0x549c]
push eax
call fcn.0040e1c9
push edi
push esi
push esi
call fcn.00403967
mov edx, dword [0x43d568]
push 0x44e698
push 0x44e690
push 0x44e688
mov eax, dword [edx + 0x28]
mov ecx, dword [edx + 0x2c]
mov dword [0x44e688], eax
mov dword [0x44e68c], ecx
mov eax, dword [edx + 0x30]
mov ecx, dword [edx + 0x34]
mov dword [0x44e690], eax
mov dword [0x44e694], ecx
mov eax, dword [edx + 0x38]
mov ecx, dword [edx + 0x3c]
mov dword [0x44e698], eax
movzx eax, word [0x44d5f2]
push eax
push dword [0x44d5c8]
mov dword [0x44e69c], ecx
call fcn.004097d5
movzx eax, word [0x44d5f2]
push 0x44d5d4
push eax
push dword [0x44d5c8]
call fcn.004099d9
push edi
push dword [ebp + 0x3c]
push esi
call fcn.004068cd
mov ecx, dword [0x43d568]
lea eax, [ecx + 0x24]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
push dword [ecx + 0x1c]
push esi
call fcn.0040e205
cmp word [0x44d684], 0
mov byte [ebp + 0x73], al
je 0x408bea
cmp word [0x44d686], 0
je 0x408bea
movzx eax, word [0x44d688]
mov ecx, 0x44d688
test ax, ax
je 0x408bea
mov edx, eax
cmp dx, 0x3a
jne 0x408bdd
push 0x5f
pop eax
mov word [ecx], ax
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x408bd1
push edi
push esi
push esi
call fcn.0040324b
cmp byte [ebp + 0x73], 0
je 0x408bfe
mov edx, ebx
mov esi, ebx
jmp 0x408c0a
mov edx, dword [0x43d538]
mov esi, dword [0x43d53c]
movzx ecx, word [0x44d5f2]
movzx eax, word [0x44d5f0]
add ecx, 0x1e
add eax, ecx
xor ecx, ecx
add eax, edx
mov edx, dword [ebp + 4]
mov dword [ebp + 0x5c], eax
mov eax, edx
adc ecx, esi
and eax, dword [ebp + 0x24]
mov dword [ebp + 0x60], ecx
mov ecx, dword [0x43d568]
cmp eax, 0xffffffff
je 0x408e96
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ecx + 0x20]
jne 0x408e96
mov edi, dword [ecx + 4]
mov eax, dword [ebp + 0x24]
mov esi, dword [ecx]
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x64], edi
cmp edi, eax
jg 0x408e96
jl 0x408c6c
cmp esi, edx
jae 0x408e96
sub edx, esi
sbb eax, edi
mov dword [ebp + 0xc], eax
js 0x408e96
jg 0x408c87
cmp edx, 0x200
jbe 0x408e96
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x5c]
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp + 0x58]
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x64], eax
cmp dword [ebp + 0x4c], edi
jg 0x408d67
jl 0x408caf
cmp ecx, esi
ja 0x408d67
mov edx, ecx
mov ecx, dword [ebp + 0x4c]
add edx, dword [ebp + 0x2c]
adc ecx, dword [ebp + 0x28]
cmp ecx, edi
jg 0x408ccc
jl 0x408d72
cmp edx, esi
jbe 0x408d72
push 0x44d684
push 0x45ceda
push 0x1c
call fcn.00401663
push 3
pop eax
mov dword [ebp + 0x74], eax
mov dword [ebp + 0x68], 1
mov edi, dword [0x44d598]
push ebx
push dword [ebp - 0x44]
mov eax, dword [edi]
push dword [ebp - 0x48]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x42822c]
mov ecx, edi
call esi
mov edi, dword [0x44d598]
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x42822c]
mov ecx, edi
call esi
push 0x2000
push dword [0x44d574]
mov dword [0x44d5b8], eax
mov dword [0x44d5bc], edx
call fcn.0040a67c
mov eax, dword [ebp - 0x10]
inc dword [ebp + 0x20]
cmp dword [ebp + 0x68], 0
mov esi, dword [ebp + 0x74]
mov dword [0x44d578], eax
mov eax, dword [ebp - 0x18]
mov dword [0x44d580], eax
mov eax, dword [ebp - 0x20]
mov dword [0x44d584], eax
jne 0x409142
jmp 0x40824c
mov edx, dword [ebp + 0x2c]
add edx, ecx
mov ecx, dword [ebp + 0x28]
adc ecx, dword [ebp + 0x4c]
mov edi, esi
add edi, eax
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0xc], edi
adc eax, dword [ebp + 0x60]
add esi, dword [ebp + 0x5c]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x64]
adc eax, dword [ebp + 0x60]
cmp dword [ebp + 0x4c], eax
jg 0x408dae
jl 0x408d97
cmp dword [ebp + 0x58], esi
jae 0x408dae
mov eax, dword [ebp + 0x6c]
cmp ecx, eax
jg 0x408ccc
jl 0x408db1
cmp edx, edi
jae 0x408ccc
jmp 0x408db1
mov eax, dword [ebp + 0x6c]
mov edi, dword [ebp - 0x58]
mov esi, ebx
mov dword [ebp + 0x30], esi
test edi, edi
je 0x408e2f
mov ecx, dword [ebp + 0x50]
add ecx, 8
mov edi, dword [ecx - 4]
mov edx, dword [ecx - 8]
cmp edi, dword [ebp + 0x64]
jg 0x408df8
jl 0x408dd5
cmp edx, dword [ebp + 0x3c]
ja 0x408df8
mov eax, dword [ecx + 4]
mov esi, edx
add esi, dword [ecx]
adc eax, edi
cmp eax, dword [ebp + 0x64]
jg 0x408ccc
jl 0x408df2
cmp esi, dword [ebp + 0x3c]
ja 0x408ccc
mov eax, dword [ebp + 0x6c]
mov esi, dword [ebp + 0x30]
cmp edi, eax
jg 0x408e21
jl 0x408e03
cmp edx, dword [ebp + 0xc]
jae 0x408e21
add edx, dword [ecx]
mov eax, dword [ecx + 4]
adc eax, edi
cmp eax, dword [ebp + 0x6c]
jg 0x408ccc
jl 0x408e1e
cmp edx, dword [ebp + 0xc]
jae 0x408ccc
mov eax, dword [ebp + 0x6c]
mov edi, dword [ebp - 0x58]
inc esi
add ecx, 0x10
mov dword [ebp + 0x30], esi
cmp esi, edi
jb 0x408dc3
mov ecx, dword [ebp + 0x48]
inc edi
mov dword [ebp - 0x58], edi
cmp edi, ecx
jbe 0x408e7c
mov eax, ecx
add ecx, 0x20
shr eax, 2
add ecx, eax
mov dword [ebp + 0x48], ecx
cmp edi, ecx
jbe 0x408e50
mov ecx, edi
mov dword [ebp + 0x48], ecx
shl ecx, 4
push ecx
push dword [ebp + 0x50]
call fcn.0041aa36
mov esi, eax
mov dword [ebp + 0x50], esi
pop ecx
pop ecx
test esi, esi
jne 0x408e71
mov ecx, 0x452b44
call fcn.0040180a
mov eax, dword [ebp + 0x48]
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x54], eax
jmp 0x408e7f
mov esi, dword [ebp + 0x50]
mov eax, edi
lea edi, [esi - 0x10]
shl eax, 4
lea esi, [ebp - 0x6c]
add edi, 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]
mov ecx, dword [0x43d568]
mov esi, dword [ecx]
mov eax, dword [ebp + 0x5c]
mov edi, dword [ecx + 4]
mov edx, dword [ebp + 0x60]
mov dword [ebp + 0x58], esi
add esi, eax
mov dword [ebp + 0x2c], eax
mov eax, dword [ecx + 0x20]
mov cl, byte [0x459dc1]
mov dword [ebp + 0x4c], edi
adc edi, edx
mov dword [ebp + 0x28], edx
mov dword [ebp + 4], esi
mov dword [ebp + 0x24], edi
mov dword [ebp - 0x3c], eax
test cl, cl
je 0x408ed5
push 0x49
pop eax
cmp word [0x45beba], ax
mov al, 1
jne 0x408ed7
mov al, bl
push ebx
push eax
test cl, cl
mov edi, 0x44d684
sete al
movzx eax, al
push eax
push edi
call fcn.004078f8
test al, al
je 0x408cea
cmp byte [0x459dc1], 0
je 0x408f23
cmp byte [ebp + 0x73], 0
je 0x4090c3
mov edi, dword [ebp + 0x74]
mov eax, dword [ebp + 0x38]
inc eax
mov dword [ebp + 0x38], eax
cmp eax, dword [ebp + 0x54]
jge 0x408cea
mov ecx, dword [ebp - 0x40]
jmp 0x40867b
cmp byte [ebp + 0x73], 0
mov esi, ebx
je 0x409017
cmp byte [0x459d1b], 0
jne 0x408f08
cmp word [0x44d684], si
je 0x408f08
cmp dword [0x459d20], 1
je 0x408f08
mov eax, dword [0x43d568]
cmp dword [eax + 0x1c], esi
je 0x408f5a
cmp dword [eax + 0x1c], 0xb
jne 0x408f5d
mov esi, dword [eax + 0x24]
push edi
call fcn.00402680
test al, al
jne 0x408fca
cmp byte [0x459d68], al
push esi
sete al
movzx eax, al
push eax
push edi
call fcn.00402710
test eax, eax
je 0x408fc4
movzx eax, byte [0x459d0b]
push eax
push 1
push edi
call fcn.00402551
cmp byte [0x459d68], 0
push esi
sete al
movzx eax, al
push eax
push edi
call fcn.00402710
test eax, eax
je 0x408fc4
push edi
push 0x45ceda
push 0x14
call fcn.00401663
mov ecx, 0x452b44
call fcn.0040193c
jmp 0x408f08
inc dword [0x43d558]
push edi
lea ecx, [ebp - 0xe0]
call fcn.004069e4
push dword [0x44e68c]
lea ecx, [ebp - 0x38]
push dword [0x44e688]
call fcn.00408147
push dword [0x44e69c]
lea ecx, [ebp - 0x38]
push dword [0x44e698]
call fcn.00408147
push dword [0x44e694]
lea ecx, [ebp - 0x38]
push dword [0x44e690]
call fcn.00408147
jmp 0x408f08
push edi
call fcn.00409c9c
cmp eax, 0xffffffff
je 0x40907e
test eax, eax
je 0x409062
cmp eax, 1
jne 0x4090c3
mov eax, dword [0x459cf4]
cmp eax, 2
je 0x408f08
cmp byte [0x459d1c], 0
jne 0x408f08
cmp byte [0x459d1b], 0
jne 0x408f08
test eax, eax
je 0x40908f
cmp eax, 3
jne 0x4090c3
jmp 0x40908f
mov eax, dword [0x459cf4]
cmp eax, 2
je 0x408f08
test eax, eax
je 0x409079
cmp eax, 3
jne 0x4090c3
xor esi, esi
inc esi
jmp 0x40908b
cmp byte [0x459d1b], 0
jne 0x408f08
test esi, esi
je 0x4090c3
push ebx
push 0x44e688
push dword [0x43d544]
push dword [0x43d540]
push 0x800
push edi
push 0x452bc0
call fcn.0040776a
cmp eax, 6
je 0x408ce3
cmp eax, 1
je 0x408f08
mov eax, dword [0x43d568]
test byte [eax + 0x40], 1
je 0x409106
call fcn.0040d12f
mov ecx, eax
test ecx, ecx
je 0x409106
cmp ecx, 9
je 0x409125
cmp ecx, 0xc
jne 0x4090ea
inc dword [ebp + 0x18]
push 6
jmp 0x4090f4
cmp ecx, dword [ebp + 0x74]
jle 0x4090f2
mov dword [ebp + 0x74], ecx
push 0x1c
pop eax
push edi
push 0x45ceda
push eax
call fcn.00401663
jmp 0x408f08
call fcn.004092f0
mov edi, dword [ebp + 0x74]
test eax, eax
je 0x408f0b
cmp eax, edi
jle 0x408f0b
mov edi, eax
jmp 0x408882
push 2
lea ecx, [ebp - 0x18c]
call fcn.004016ba
lea ecx, [ebp - 0x18c]
call fcn.0040737c
mov esi, dword [ebp + 0x74]
mov bl, 1
push 0x800
lea eax, [ebp - 0x349c]
push eax
lea ecx, [ebp - 0xe0]
call fcn.00406a6e
test al, al
je 0x4091e1
mov edi, dword [ebp - 0x38]
add edi, 0x10
mov eax, dword [edi - 0x10]
mov ecx, dword [edi - 0xc]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
mov eax, dword [edi - 8]
mov ecx, dword [edi - 4]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x24], eax
mov eax, dword [0x45ae98]
neg eax
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x24]
sbb eax, eax
and eax, ecx
lea ecx, [ebp - 0x1c]
push eax
mov eax, dword [0x45ae94]
neg eax
sbb eax, eax
and eax, ecx
lea ecx, [ebp - 0x14]
push eax
mov eax, dword [0x45ae90]
neg eax
sbb eax, eax
and eax, ecx
push eax
lea eax, [ebp - 0x349c]
push eax
call fcn.004027b2
push 0x800
lea eax, [ebp - 0x349c]
push eax
lea ecx, [ebp - 0xe0]
lea edi, [edi + 0x18]
call fcn.00406a6e
test al, al
jne 0x409167
call fcn.004078d6
test al, al
jne 0x40920c
cmp dword [ebp + 0x1c], 0
je 0x40920c
cmp byte [0x44e80c], al
jne 0x40920c
push 0x45ceda
mov ecx, 0x452b44
call fcn.004016ef
test esi, esi
jne 0x40920c
inc esi
mov edi, dword [ebp + 0x44]
inc edi
cmp dword [0x43d558], 0
jne 0x409241
push 0x49
pop eax
cmp word [0x45beba], ax
je 0x409241
test bl, bl
jne 0x409235
push 0x45ceda
push 0x44
call fcn.00401634
push 0xa
mov ecx, 0x452b44
call fcn.004018f4
test edi, edi
jne 0x40925d
cmp esi, 1
jg 0x40925d
mov eax, dword [ebp + 0x40]
xor cx, cx
cmp cx, ax
sbb esi, esi
and esi, 0x46
add esi, 0xb
jmp 0x40928b
mov ecx, dword [ebp + 0x18]
movzx eax, cx
cmp edi, eax
jne 0x409270
cmp esi, 1
jg 0x409270
push 0x52
jmp 0x40927e
cmp word [ebp + 0x40], 0
je 0x409281
cmp esi, 1
jg 0x409281
push 0x51
pop esi
jmp 0x40928b
test cx, cx
je 0x40928b
test esi, esi
jne 0x40928b
inc esi
lea ecx, [ebp - 0xe0]
call fcn.004012d6
mov ebx, dword [ebp - 0x38]
mov byte [ebp - 4], 6
pop edi
test ebx, ebx
je 0x4092bc
cmp byte [ebp - 0x28], 0
je 0x4092b5
mov eax, dword [ebp - 0x30]
shl eax, 3
push eax
push ebx
call fcn.004059ab
push ebx
call fcn.004187ae
pop ecx
lea ecx, [ebp - 0x140]
call fcn.004012d6
lea ecx, [ebp - 0x80]
call fcn.00407eb8
mov eax, dword [ebp + 0x50]
test eax, eax
je 0x4092dd
push eax
call fcn.004187ae
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add ebp, 0x78
leave
ret