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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff3c
push ebx
push esi
push edi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea ebx, [ebp - 4]
mov eax, dword [ebx]
call fcn.0065570c
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x134]
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x130]
mov eax, dword [ebx]
test byte [eax + 0x20], 0x10
jne 0x6581ba
mov eax, dword [ebx]
mov eax, dword [eax + 0x61c]
mov edx, dword [eax]
call dword [edx + 8]
test eax, eax
je 0x6581ba
mov eax, dword [ebx]
mov eax, dword [eax + 0x61c]
mov edx, dword [eax]
call dword [edx + 0xc]
test eax, eax
je 0x6581ba
mov eax, dword [ebx]
mov eax, dword [eax + 0x61c]
call fcn.00686654
test al, al
je 0x656fc0
mov eax, dword [ebx]
mov eax, dword [eax + 0x61c]
call fcn.00686618
mov edx, dword [eax]
call dword [edx + 0xc]
mov esi, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x61c]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp esi, eax
jne 0x6581ba
mov eax, dword [ebx]
mov eax, dword [eax + 0x61c]
call fcn.00686618
mov edx, dword [eax]
call dword [edx + 8]
mov esi, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x61c]
mov edx, dword [eax]
call dword [edx + 8]
cmp esi, eax
jne 0x6581ba
xor eax, eax
mov dword [ebp - 0x7c], eax
xor eax, eax
mov dword [ebp - 0x80], eax
xor eax, eax
mov dword [ebp - 0x84], eax
xor eax, eax
mov dword [ebp - 0x88], eax
mov byte [ebp - 0xd], 1
mov eax, dword [ebx]
mov eax, dword [eax + 0x628]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x657ecf
inc eax
mov dword [ebp - 0x8c], eax
xor esi, esi
mov eax, dword [ebx]
mov eax, dword [eax + 0x628]
mov edx, esi
call fcn.004120b8
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x24], 0
je 0x657ec2
mov eax, dword [ebx]
cmp dword [eax + 0x3b8], 0
je 0x657ec2
mov eax, dword [ebx]
cmp dword [eax + 0x3bc], 0
je 0x657ec2
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, dword [ebx]
cmp eax, dword [edx + 0x3d4]
jge 0x657069
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebx]
cmp eax, dword [edx + 0x3d4]
jl 0x657ec2
xor eax, eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x6d], 0
mov eax, dword [ebx]
mov eax, dword [eax + 0x628]
mov eax, dword [eax + 8]
dec eax
cmp esi, eax
jge 0x6570b9
lea edx, [esi + 1]
mov eax, dword [ebx]
call fcn.00655460
cmp byte [eax + 0x74], 0
je 0x6570b9
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x74], 0
jne 0x6570b9
mov eax, dword [ebp - 0x14]
fld qword [eax + 0x10]
fcomp dword [0x6581c4]
fnstsw ax
sahf
jne 0x6570b9
lea edx, [esi + 1]
mov eax, dword [ebx]
call fcn.00655460
mov dword [ebp - 0x1c], eax
test esi, esi
jle 0x657152
cmp dword [ebp - 0x1c], 0
jne 0x657152
mov eax, dword [ebx]
cmp byte [eax + 0x43c], 1
jne 0x657152
mov byte [ebp - 0x6d], 1
push 0
push 0
mov ecx, dword [ebx]
mov dl, 1
mov eax, dword [0x6498b0]
call fcn.00655ab0
mov dword [ebp - 0x1c], eax
push 3
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x20]
pop ecx
mov edi, dword [eax]
call dword [edi + 0x28]
push 0x406fe000
push 0
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x20]
call fcn.0068cac0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 8], eax
push ebp
call fcn.00656998
pop ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x18], eax
mov al, byte [ebp - 0xd]
and al, byte [ebp + 0xc]
je 0x657173
push ebp
xor eax, eax
call fcn.00656788
pop ecx
mov eax, dword [ebx]
cmp dword [eax + 0x470], 0
jg 0x6571b6
mov eax, dword [ebp - 0x14]
cmp dword [eax + 4], 0
jne 0x6571bc
mov eax, dword [ebp - 0x14]
cmp dword [eax + 8], 0
jne 0x6571bc
mov eax, dword [ebx]
fld qword [eax + 0x488]
fcomp dword [0x6581c8]
fnstsw ax
sahf
jne 0x6571bc
mov eax, dword [ebx]
fld qword [eax + 0x490]
fcomp dword [0x6581c8]
fnstsw ax
sahf
jne 0x6571bc
mov byte [ebp - 0x2d], 0
jmp 0x6571db
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x6e], 0
je 0x6571d0
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x6d]
mov byte [ebp - 0x2d], al
jmp 0x6571db
mov eax, dword [ebx]
mov al, byte [eax + 0x24a]
mov byte [ebp - 0x2d], al
mov eax, dword [ebx]
cmp byte [eax + 0x639], 0
jne 0x657241
mov eax, dword [ebx]
mov eax, dword [eax + 0x628]
cmp dword [eax + 8], 1
jne 0x6573ae
mov eax, dword [ebp - 0x14]
cmp dword [eax + 4], 0
jne 0x6573ae
mov eax, dword [ebp - 0x14]
cmp dword [eax + 8], 0
jne 0x6573ae
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x2c], 0
jne 0x6573ae
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x30], 0
jne 0x6573ae
mov eax, dword [ebp - 0x14]
fld qword [eax + 0x10]
fcomp dword [0x6581c4]
fnstsw ax
sahf
jne 0x6573ae
mov eax, dword [ebx]
add eax, 0x668
push eax
mov eax, dword [ebx]
add eax, 0x66c
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x4c4]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x4c8]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b8]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3bc]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3a8]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3ac]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b0]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b4]
push eax
mov eax, dword [ebx]
mov al, byte [eax + 0x618]
push eax
mov eax, dword [ebx]
cmp byte [eax + 0x24d], 0
sete al
and al, byte [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov al, byte [ebp - 0x2d]
push eax
push 1
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x60]
push eax
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
call fcn.0068d710
mov eax, dword [ebx]
mov eax, dword [eax + 0x4c8]
mov edx, dword [ebx]
add eax, dword [edx + 0x3bc]
push eax
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x4c4]
mov eax, dword [ebx]
add ecx, dword [eax + 0x3b8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x4c8]
mov eax, dword [ebx]
mov eax, dword [eax + 0x4c4]
call fcn.00411450
mov eax, dword [ebp - 0x14]
push esi
lea esi, [ebp - 0xac]
lea edi, [eax + 0x34]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [ebx]
mov eax, dword [eax + 0x4c4]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x78], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x4c8]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x7c], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b8]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x80], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3bc]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x84], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3a8]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x88], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3ac]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x8c], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b0]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x90], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b4]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x94], eax
jmp 0x657e47
mov eax, dword [ebp - 0x14]
fld qword [eax + 0x10]
fcomp dword [0x6581c4]
fnstsw ax
sahf
je 0x65762e
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x14]
call fcn.00656150
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x14]
call fcn.00656164
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [ebp - 0x58]
jne 0x657422
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
cmp eax, dword [ebp - 0x5c]
jne 0x657422
mov edi, dword [ebp - 0xc]
jmp 0x657452
mov eax, dword [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0x58]
mov dl, 1
mov eax, dword [0x67c338]
call fcn.006861f8
mov edi, eax
push 0
push 0
push 0
xor ecx, ecx
mov edx, edi
mov eax, dword [ebp - 0xc]
call fcn.006a2e20
mov eax, edi
call fcn.00686618
mov dl, 1
mov eax, dword [0x67c338]
call fcn.00686024
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0
push 0
push 0
xor ecx, ecx
mov edx, dword [ebp - 0x78]
mov eax, edi
call fcn.006b6cb8
mov eax, dword [ebp - 0x14]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0
push 0
push 0
mov eax, dword [ebp - 0x78]
call fcn.00686618
push eax
mov eax, edi
call fcn.00686618
xor ecx, ecx
pop edx
call fcn.006b6cb8
mov eax, dword [ebp - 0x78]
call fcn.00686618
call fcn.00692f14
cmp edi, dword [ebp - 0xc]
je 0x6574c3
mov eax, edi
call fcn.00403170
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, dword [ebp - 0x14]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 0x14]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x14]
lea edi, [eax + 0x78]
xor eax, eax
mov dword [edi + 0x20], eax
xor eax, eax
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x58]
mov dword [edi + 0x28], eax
xor eax, eax
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0x58]
mov dword [edi + 0x30], eax
mov eax, dword [ebp - 0x5c]
mov dword [edi + 0x34], eax
xor eax, eax
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 0x5c]
mov dword [edi + 0x3c], eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0x14]
push dword [eax + 0x10]
fild dword [ebp - 0x5c]
mov eax, dword [ebp - 0x14]
fmul qword [eax + 0xd8]
call fcn.00402c40
push eax
fild dword [ebp - 0x58]
mov eax, dword [ebp - 0x14]
fmul qword [eax + 0xd0]
call fcn.00402c40
mov ecx, eax
lea eax, [edi + 0x20]
mov edx, 3
call fcn.0069c428
mov edx, dword [edi + 0x28]
mov eax, dword [edi + 0x20]
call fcn.006a077c
mov edx, dword [edi + 0x30]
call fcn.006a077c
mov edx, dword [edi + 0x38]
call fcn.006a077c
add eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x2c], eax
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 0x24]
call fcn.006a077c
mov edx, dword [edi + 0x34]
call fcn.006a077c
mov edx, dword [edi + 0x3c]
call fcn.006a077c
add eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x30], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [edi + eax*8 + 0x20]
add eax, dword [ebp - 0x84]
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
mov eax, dword [ebx]
fmul qword [eax + 0x498]
call fcn.00402c40
mov edx, dword [ebx]
add eax, dword [edx + 0x4c4]
mov edx, dword [ebx]
sub eax, dword [edx + 0x480]
mov edx, dword [ebp - 0x2c]
mov dword [edi + edx*8 + 0x20], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [edi + eax*8 + 0x24]
add eax, dword [ebp - 0x88]
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
mov eax, dword [ebx]
fmul qword [eax + 0x4a8]
call fcn.00402c40
mov edx, dword [ebx]
add eax, dword [edx + 0x4c8]
mov edx, dword [ebx]
sub eax, dword [edx + 0x484]
mov edx, dword [ebp - 0x2c]
mov dword [edi + edx*8 + 0x24], eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 4
jne 0x6575a5
jmp 0x657633
xor eax, eax
mov dword [ebp - 0x78], eax
test esi, esi
jle 0x657a4f
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x48], 0
je 0x657a4f
mov eax, dword [ebp - 0x14]
fld qword [eax + 0x50]
fcomp dword [0x6581cc]
fnstsw ax
sahf
jb 0x657a4f
mov eax, dword [ebx]
cmp byte [eax + 0x654], 0
jne 0x657696
mov eax, dword [ebp - 0x14]
cmp dword [eax + 4], 0
jle 0x65767f
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xc]
call fcn.006869e0
mov eax, dword [ebp - 0x14]
cmp dword [eax + 8], 0
jle 0x657696
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xc]
call fcn.00686ba4
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
mov eax, dword [ebp - 0x14]
fld qword [eax + 0x50]
mov eax, dword [ebx]
fdiv qword [eax + 0x498]
fdivp st(1)
call fcn.00402c40
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
mov eax, dword [ebp - 0x14]
fld qword [eax + 0x50]
mov eax, dword [ebx]
fdiv qword [eax + 0x4a8]
fdivp st(1)
call fcn.00402c40
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebx]
call fcn.0064d3f4
mov edi, eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
mov eax, dword [ebx]
fmul qword [eax + 0x498]
fdiv dword [0x6581d0]
call fcn.00402c40
add edi, eax
mov dword [ebp - 0x60], edi
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x30]
mov eax, dword [ebx]
call fcn.0064d478
mov edi, eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
mov eax, dword [ebx]
fmul qword [eax + 0x4a8]
fdiv dword [0x6581d0]
call fcn.00402c40
add edi, eax
mov dword [ebp - 0x64], edi
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x58]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x64]
add eax, dword [ebp - 0x5c]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x58]
sar eax, 1
jns 0x657780
adc eax, 0
sub dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x5c]
sar eax, 1
jns 0x65778d
adc eax, 0
sub dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x58]
sar eax, 1
jns 0x65779a
adc eax, 0
sub dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x5c]
sar eax, 1
jns 0x6577a7
adc eax, 0
sub dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x59]
sub al, 1
jb 0x657830
jne 0x657955
mov dl, 2
mov eax, dword [ebp - 0xc]
call fcn.0068d2a8
mov eax, dword [ebp - 0x6c]
push eax
lea eax, [ebp - 0xac]
push eax
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
call fcn.00411450
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
push eax
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.00411450
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [ebp - 8]
call fcn.0068d57c
push eax
mov eax, dword [ebp - 0xc]
call fcn.00686450
call fcn.00421cf8
pop ecx
pop edx
call fcn.0041cd88
jmp 0x657955
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x10]
cmp al, 5
je 0x657846
mov dl, 5
mov eax, dword [ebp - 0xc]
call fcn.006872fc
mov edx, dword [ebp - 0x60]
mov eax, dword [ebx]
call fcn.0064d4fc
mov dword [ebp - 0x60], eax
mov edx, dword [ebp - 0x64]
mov eax, dword [ebx]
call fcn.0064d548
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0x68]
mov eax, dword [ebx]
call fcn.0064d4fc
mov dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebx]
call fcn.0064d548
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x68]
inc ebp
cwde
sub eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x6c]
sub eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0
jl 0x657955
cmp dword [ebp - 0x60], 0
jl 0x657955
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0xc]
sub eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x60]
jle 0x657955
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 8]
sub eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x64]
jle 0x657955
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [ebp - 0x58]
jle 0x657955
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 8]
cmp eax, dword [ebp - 0x5c]
jle 0x657955
push 0
push 0
mov eax, dword [ebp - 0xc]
call fcn.0068cac0
push 0
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
push eax
mov eax, dword [ebp - 0x60]
push eax
mov eax, dword [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x58]
push eax
mov eax, dword [ebp - 0x5c]
push eax
push 0xff
mov al, byte [ebp - 0x2d]
push eax
push 0
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x20]
xor ecx, ecx
mov edx, dword [ebp - 0xc]
call fcn.0068d604
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x58]
sub al, 1
jb 0x657966
je 0x65797f
jmp 0x657a4f
push 0x406fe000
push 0
mov eax, dword [ebp - 0xc]
call fcn.00686618
call fcn.0068cac0
jmp 0x657a4f
mov eax, dword [ebp - 0xc]
call fcn.00686618
mov dl, 2
call fcn.0068d2a8
push 0
push 0
mov eax, dword [ebp - 0xc]
call fcn.00686618
call fcn.0068cac0
mov eax, dword [ebp - 0xc]
call fcn.00686618
mov byte [eax + 0x53], 0
mov eax, dword [ebp - 0xc]
call fcn.00686618
call fcn.00686450
call fcn.00421cf8
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.0041c91c
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x14]
mov edx, 0x10000ff
call fcn.0041c800
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x10]
xor edx, edx
call fcn.0041c5f8
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x10]
mov dl, 4
call fcn.0041c5dc
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x10]
mov edx, 0x10000ff
call fcn.0041c4f8
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x10]
mov edx, 1
call fcn.0041c628
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
dec eax
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
dec eax
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x90]
call fcn.0041cef0
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebx]
call fcn.0064d3f4
mov edi, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x30]
mov eax, dword [ebx]
call fcn.0064d478
mov dword [ebp - 0x44], eax
push ebp
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x44]
call fcn.00656e7c
pop ecx
mov dword [ebp - 0x44], eax
push ebp
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x2c]
mov eax, edi
call fcn.00656eb8
pop ecx
mov edi, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0
jne 0x657aac
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x2c]
add edx, dword [ebp - 0x58]
mov eax, dword [ebx]
call fcn.0064d3f4
mov dword [ebp - 0x48], eax
push ebp
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x2c]
add edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x48]
call fcn.00656eb8
pop ecx
mov dword [ebp - 0x48], eax
sub dword [ebp - 0x48], edi
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0
jne 0x657af2
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x30]
add edx, dword [ebp - 0x5c]
mov eax, dword [ebx]
call fcn.0064d478
mov dword [ebp - 0x4c], eax
push ebp
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x30]
add edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x4c]
call fcn.00656e7c
pop ecx
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x44]
sub dword [ebp - 0x4c], eax
xor eax, eax
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x4c]
push eax
lea eax, [ebp - 0xac]
push eax
mov ecx, dword [ebp - 0x48]
add ecx, edi
mov edx, dword [ebp - 0x44]
mov eax, edi
call fcn.00411450
mov eax, dword [ebp - 0x14]
push esi
push edi
lea esi, [ebp - 0xac]
lea edi, [eax + 0x34]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x44], 0
je 0x657d4d
mov edx, edi
mov eax, dword [ebx]
call fcn.0064d4fc
test eax, eax
jge 0x657be8
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
fild dword [ebp - 0x58]
fdivp st(1)
mov eax, dword [ebp - 0x14]
fild dword [eax + 0x2c]
fmulp st(1)
call fcn.00402c40
neg eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x3c], eax
xor edx, edx
mov eax, dword [ebx]
call fcn.0064d3f4
mov edi, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x2c]
add edx, dword [ebp - 0x58]
mov eax, dword [ebx]
call fcn.0064d3f4
sub eax, edi
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x44]
mov eax, dword [ebx]
call fcn.0064d548
test eax, eax
jge 0x657c51
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
fild dword [ebp - 0x5c]
fdivp st(1)
mov eax, dword [ebp - 0x14]
fild dword [eax + 0x30]
fmulp st(1)
call fcn.00402c40
neg eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
sub eax, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
xor edx, edx
mov eax, dword [ebx]
call fcn.0064d478
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x30]
add edx, dword [ebp - 0x5c]
mov eax, dword [ebx]
call fcn.0064d478
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x4c], eax
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0xc]
push eax
mov edx, dword [ebp - 0x48]
add edx, edi
mov eax, dword [ebx]
call fcn.0064d4fc
pop edx
cmp edx, eax
jge 0x657cce
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, eax
mov eax, dword [ebx]
call fcn.0064d3f4
sub eax, edi
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 0x34]
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
fdivp st(1)
fild dword [ebp - 0x48]
fmulp st(1)
call fcn.00402c40
mov dword [ebp - 0x3c], eax
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 8]
push eax
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x4c]
mov eax, dword [ebx]
call fcn.0064d548
pop edx
cmp edx, eax
jge 0x657d4d
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, eax
mov eax, dword [ebx]
call fcn.0064d478
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
mov dword [ebp - 0xb0], eax
fild dword [ebp - 0xb0]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 0x38]
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
fdivp st(1)
fild dword [ebp - 0x4c]
fmulp st(1)
call fcn.00402c40
mov dword [ebp - 0x40], eax
xor eax, eax
mov dword [ebp - 0x50], eax
xor eax, eax
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp + 0x10]
push eax
push edi
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebx]
mov al, byte [eax + 0x618]
push eax
mov eax, dword [ebx]
cmp byte [eax + 0x24d], 0
sete al
and al, byte [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov al, byte [ebp - 0x2d]
push eax
push 1
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x60]
push eax
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
call fcn.0068d710
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x78], edi
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x44]
mov dword [eax + 0x7c], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x48]
mov dword [eax + 0x80], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x4c]
mov dword [eax + 0x84], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x88], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x8c], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x90], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x94], edx
cmp dword [ebp - 0x78], 0
je 0x657e47
lea eax, [ebp - 0x78]
call fcn.0040e0e0
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x7c]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x80]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x88]
mov dword [eax + 0x30], edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 8]
mov edx, esi
mov eax, dword [ebx]
mov edi, dword [eax]
call dword [edi + 0x144]
cmp byte [ebp + 8], 0
je 0x657e89
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0xb8], 0
je 0x657e89
mov eax, dword [ebx]
cmp esi, dword [eax + 0x62c]
jne 0x657e89
mov eax, dword [ebp - 8]
call fcn.00686450
mov edx, eax
mov ecx, esi
mov eax, dword [ebx]
call fcn.00658700
mov eax, dword [ebx]
cmp word [eax + 0x40a], 0
je 0x657ea9
push esi
mov edi, dword [ebx]
mov ecx, dword [ebp - 8]
mov edx, dword [ebx]
mov eax, dword [edi + 0x40c]
call dword [edi + 0x408]
push ebp
call fcn.00656e14
pop ecx
cmp byte [ebp - 0x6d], 0
je 0x657ebe
mov eax, dword [ebp - 0x1c]
call fcn.00403170
mov byte [ebp - 0xd], 0
inc esi
dec dword [ebp - 0x8c]
jne 0x656ffb
mov eax, dword [ebx]
cmp byte [eax + 0x43c], 2
je 0x657ee9
mov eax, dword [ebx]
cmp byte [eax + 0x43c], 3
jne 0x658093
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0xc]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 8]
mov dword [ebp - 0x5c], eax
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x78]
mov dword [ebp - 0x60], eax
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x64], eax
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x80]
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x68], eax
xor edx, edx
mov eax, dword [ebx]
call fcn.00655460
mov eax, dword [eax + 0x84]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x5c]
dec eax
test eax, eax
jl 0x658093
inc eax
mov dword [ebp - 0x8c], eax
xor esi, esi
mov edx, esi
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov dword [ebp - 0x74], eax
mov eax, dword [ebx]
mov al, byte [eax + 0x43c]
sub al, 2
je 0x657f7d
dec al
je 0x657fe5
jmp 0x658086
mov eax, dword [ebp - 0x58]
dec eax
test eax, eax
jl 0x658086
inc eax
mov dword [ebp - 0x94], eax
xor edi, edi
cmp esi, dword [ebp - 0x64]
jl 0x657fa6
cmp esi, dword [ebp - 0x6c]
jg 0x657fa6
cmp edi, dword [ebp - 0x60]
jl 0x657fa6
cmp edi, dword [ebp - 0x68]
jle 0x657fd3
lea eax, [esi + edi]
test al, 1
jne 0x657fd3
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x98]
mov byte [eax + 2], 0x80
mov eax, dword [ebp - 0x98]
mov byte [eax + 1], 0x80
mov eax, dword [ebp - 0x98]
mov byte [eax], 0x80
add dword [ebp - 0x74], 3
inc edi
dec dword [ebp - 0x94]
jne 0x657f92
jmp 0x658086
mov eax, dword [ebp - 0x58]
dec eax
test eax, eax
jl 0x658086
inc eax
mov dword [ebp - 0x94], eax
xor edi, edi
cmp esi, dword [ebp - 0x64]
jl 0x65800e
cmp esi, dword [ebp - 0x6c]
jge 0x65800e
cmp edi, dword [ebp - 0x60]
jl 0x65800e
cmp edi, dword [ebp - 0x68]
jl 0x658075
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x9c]
movzx eax, byte [eax + 2]
mov edx, dword [ebx]
add eax, dword [edx + 0x440]
call fcn.006a0794
mov edx, dword [ebp - 0x9c]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x9c]
movzx eax, byte [eax + 1]
mov edx, dword [ebx]
add eax, dword [edx + 0x440]
call fcn.006a0794
mov edx, dword [ebp - 0x9c]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x9c]
movzx eax, byte [eax]
mov edx, dword [ebx]
add eax, dword [edx + 0x440]
call fcn.006a0794
mov edx, dword [ebp - 0x9c]
mov byte [edx], al
add dword [ebp - 0x74], 3
inc edi
dec dword [ebp - 0x94]
jne 0x657ffa
inc esi
dec dword [ebp - 0x8c]
jne 0x657f5c
mov al, byte [ebp - 0xd]
and al, byte [ebp + 0xc]
je 0x6580a4
push ebp
mov al, 1
call fcn.00656788
pop ecx
cmp byte [ebp + 8], 0
je 0x6581ba
mov eax, dword [ebx]
mov eax, dword [eax + 0x628]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x658198
inc eax
mov dword [ebp - 0x8c], eax
xor esi, esi
mov edx, esi
mov eax, dword [ebx]
call fcn.00655460
cmp byte [eax + 0x25], 0
je 0x65818b
mov eax, dword [ebx]
cmp esi, dword [eax + 0x62c]
jne 0x65816d
mov eax, dword [ebx]
test byte [eax + 0x5f9], 1
jne 0x65810d
mov eax, dword [ebx]
test byte [eax + 0x5f9], 2
jne 0x65810d
mov eax, dword [ebx]
test byte [eax + 0x5f9], 4
je 0x658120
mov eax, dword [ebp - 8]
call fcn.00686450
mov edx, eax
mov ecx, esi
mov eax, dword [ebx]
call fcn.00658668
mov eax, dword [ebx]
test byte [eax + 0x5f9], 2
je 0x65814d
mov edx, esi
mov eax, dword [ebx]
call fcn.00655460
cmp byte [eax + 0x45], 0
jne 0x65814d
mov eax, dword [ebp - 8]
call fcn.00686450
mov edx, eax
mov ecx, esi
mov eax, dword [ebx]
call fcn.00658cc4
mov eax, dword [ebx]
test byte [eax + 0x5f9], 4
je 0x65818b
mov eax, dword [ebp - 8]
call fcn.00686450
mov edx, eax
mov ecx, esi
mov eax, dword [ebx]
call fcn.00658de4
jmp 0x65818b
mov eax, dword [ebx]
cmp byte [eax + 0x63a], 0
je 0x65818b
mov eax, dword [ebp - 8]
call fcn.00686450
mov edx, eax
mov ecx, esi
mov eax, dword [ebx]
call fcn.00658668
inc esi
dec dword [ebp - 0x8c]
jne 0x6580cb
mov eax, dword [ebp - 8]
call fcn.00686450
mov edx, eax
mov eax, dword [ebx]
call fcn.0065647c
mov eax, dword [ebp - 8]
call fcn.00686450
mov edx, eax
mov eax, dword [ebx]
call fcn.00656540
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc