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

Disassembly:
sub esp, 0x78
movsd xmm0, qword [esp + 0x7c]
mov eax, dword [esp + 0x90]
movsd qword [esp], xmm0
mov ecx, dword [esp + 4]
mov dword [esp + 8], 0
test ecx, ecx
jns 0x65638c
and ecx, 0x7fffffff
mov dword [eax], 1
mov dword [esp + 4], ecx
movsd xmm0, qword [esp]
jmp 0x656392
mov dword [eax], 0
mov eax, ecx
and eax, 0x7ff00000
push esi
cmp eax, 0x7ff00000
jne 0x656411
cmp dword [esp + 4], 0
mov eax, dword [esp + 0x90]
mov dword [eax], 0x270f
jne 0x6563d8
test ecx, 0xfffff
jne 0x6563d8
push 8
push dword [esp + 0x9c]
push str.Infinity
call fcn.00657760
add esp, 0xc
pop esi
add esp, 0x78
ret
push 3
call fcn.00657b60
mov esi, 0x6f9390
add esp, 4
mov edx, eax
sub esi, eax
mov byte [eax], 0x4e
nop
mov cl, byte [esi + edx + 1]
inc edx
mov byte [edx], cl
test cl, cl
jne 0x6563f0
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x65714d
mov dword [ecx], edx
pop esi
add esp, 0x78
ret
ucomisd xmm0, qword [0x772848]
lahf
test ah, 0x44
jp 0x656447
mov eax, dword [esp + 0x90]
push 1
push dword [esp + 0x9c]
push 0x6f9028
mov dword [eax], 1
call fcn.00657760
add esp, 0xc
pop esi
add esp, 0x78
ret
push edi
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00656090
mov esi, dword [esp + 0x18]
add esp, 0xc
movsd xmm1, qword [esp + 8]
mov edx, esi
shr edx, 0x14
mov edi, eax
mov dword [esp + 0x7c], edi
movsd qword [esp + 0x68], xmm1
and edx, 0x7ff
je 0x6564b3
movsd qword [esp + 0x84], xmm1
mov eax, dword [esp + 0x88]
and eax, 0xfffff
mov dword [esp + 0x3c], 0
or eax, 0x3ff00000
add edx, 0xfffffc01
mov dword [esp + 0x88], eax
jmp 0x65651f
mov edx, dword [esp + 0x4c]
add edx, 0x432
add edx, dword [esp + 0x44]
cmp edx, 0x20
jle 0x6564dc
mov eax, dword [esp + 8]
mov ecx, 0x40
sub ecx, edx
shl esi, cl
lea ecx, [edx - 0x20]
shr eax, cl
or esi, eax
jmp 0x6564e9
mov esi, dword [esp + 8]
mov ecx, 0x20
sub ecx, edx
shl esi, cl
movd xmm0, esi
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
mov dword [esp + 0x3c], 1
addsd xmm0, qword [esi*8 + 0x6f4400]
movsd qword [esp + 0x84], xmm0
sub dword [esp + 0x88], 0x1f00000
sub edx, 0x433
movsd xmm2, qword [esp + 0x84]
subsd xmm2, qword [0x74e060]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm2, qword [0x74e040]
mulsd xmm0, qword [0x74e048]
addsd xmm2, qword [0x74e030]
addsd xmm2, xmm0
xorps xmm0, xmm0
comisd xmm0, xmm2
cvttsd2si ecx, xmm2
mov dword [esp + 0x88], ecx
jbe 0x656582
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm2, xmm0
lahf
test ah, 0x44
jnp 0x656582
dec ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x48], 1
cmp ecx, 0x16
ja 0x6565ae
movsd xmm0, qword [ecx*8 + 0x74def0]
comisd xmm0, xmm1
jbe 0x6565a6
dec ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x4c]
sub eax, edx
mov dword [esp + 0x30], ecx
sub eax, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x74], eax
js 0x6565e1
xor esi, esi
jmp 0x6565eb
mov esi, eax
neg esi
xor eax, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], esi
test ecx, ecx
js 0x656607
add eax, ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x74], eax
jmp 0x65661b
sub esi, ecx
mov eax, ecx
neg eax
mov dword [esp + 0x64], esi
xor esi, esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x8c]
test esi, esi
js 0x65662b
cmp esi, 9
jle 0x656634
xor esi, esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x50], 1
cmp esi, 5
jle 0x656653
sub esi, 4
mov dword [esp + 0x50], 0
mov dword [esp + 0x8c], esi
or eax, 0xffffffff
mov dword [esp + 0x60], 1
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x70], eax
cmp esi, 5
ja case.default.0x65666f
jmp dword [esi*4 + 0x657154]
mov edx, 0x12
mov dword [esp + 0x58], 0
jmp 0x6566e7
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x90]
mov edx, 1
test eax, eax
cmovg edx, eax
mov eax, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x58], edx
jmp 0x6566e7
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x90]
mov dword [esp + 0x58], eax
add eax, ecx
mov dword [esp + 0x54], eax
mov ecx, 1
lea edx, [eax + 1]
mov eax, edx
test edx, edx
mov dword [esp + 0x70], eax
cmovle edx, ecx
jmp 0x6566e7
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x58], ecx
push edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], eax
call fcn.00657b60
movsd xmm4, qword [0x6fd7d0]
mov edx, eax
movsd xmm5, qword [0x74e068]
add esp, 4
cmp dword [esp + 0x70], 0xe
mov esi, edx
movsd xmm1, qword [esp + 0x68]
mov dword [esp + 0x78], edx
ja 0x6569bd
cmp dword [esp + 0x50], 0
je 0x6569bd
mov ecx, dword [esp + 0x88]
mov eax, 2
mov dword [esp + 0x6c], eax
movaps xmm6, xmm1
test ecx, ecx
jle 0x656799
mov eax, ecx
and eax, 0xf
movsd xmm2, qword [eax*8 + 0x74def0]
mov eax, ecx
sar eax, 4
test al, 0x10
je 0x656771
divsd xmm1, qword [0x74e078]
and eax, 0xf
mov dword [esp + 0x6c], 3
test eax, eax
je 0x656793
mov edx, 0x74dfa8
nop word [eax + eax]
test al, 1
je 0x65678c
inc dword [esp + 0x6c]
mulsd xmm2, qword [edx]
add edx, 8
sar eax, 1
jne 0x656780
divsd xmm1, xmm2
jmp 0x6567d4
mov edx, ecx
neg edx
je 0x6567d8
mov eax, edx
sar edx, 4
and eax, 0xf
mulsd xmm1, qword [eax*8 + 0x74def0]
test edx, edx
je 0x6567d4
mov eax, 0x74dfa8
nop dword [eax]
test dl, 1
je 0x6567cd
inc dword [esp + 0x6c]
mulsd xmm1, qword [eax]
add eax, 8
sar edx, 1
jne 0x6567c0
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x48], 0
movsd xmm3, qword [0x772850]
je 0x656811
comisd xmm3, xmm1
jbe 0x656811
cmp dword [esp + 0x70], 0
jle 0x656811
mov edx, dword [esp + 0x54]
test edx, edx
jle 0x6569b0
dec ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x88], ecx
inc eax
mulsd xmm1, xmm4
movd xmm0, eax
mov eax, dword [esp + 0x70]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm0, qword [0x6fd7c8]
movsd qword [esp + 8], xmm0
sub dword [esp + 0xc], 0x3400000
test eax, eax
jne 0x656885
movsd xmm0, qword [esp + 8]
subsd xmm1, xmm5
mov dword [esp + 0x7c], eax
mov dword [esp + 0x70], eax
comisd xmm1, xmm0
ja 0x656a11
xorps xmm0, xmmword [0x6fd8c0]
comisd xmm0, xmm1
jbe 0x6569b0
mov eax, dword [esp + 0x88]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x58]
not eax
mov dword [esp + 0x88], eax
jmp 0x656fe4
cmp dword [esp + 0x60], 0
je 0x656920
movsd xmm2, qword [0x6fd7c0]
divsd xmm2, qword [eax*8 + 0x74dee8]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x50], 0
lea esi, [edx + 1]
cvttsd2si eax, xmm1
subsd xmm2, qword [esp + 8]
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
mov byte [edx], al
subsd xmm1, xmm0
comisd xmm2, xmm1
ja 0x657020
movaps xmm0, xmm3
subsd xmm0, xmm1
comisd xmm2, xmm0
ja 0x656b1d
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0x50], eax
cmp eax, dword [esp + 0x70]
jge 0x6569b4
mulsd xmm1, xmm4
mulsd xmm2, xmm4
cvttsd2si eax, xmm1
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
mov byte [esi], al
inc esi
subsd xmm1, xmm0
comisd xmm2, xmm1
jbe 0x6568d4
jmp 0x657020
mov edi, dword [esp + 0x70]
mov ecx, 1
movsd xmm3, qword [edi*8 + 0x74dee8]
mulsd xmm3, qword [esp + 8]
movsd qword [esp + 8], xmm3
xorps xmm3, xmm3
cvttsd2si edx, xmm1
movd xmm0, edx
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
ucomisd xmm1, xmm3
lahf
test ah, 0x44
cmovnp edi, ecx
add dl, 0x30
mov byte [esi], dl
inc esi
cmp ecx, edi
je 0x65696d
inc ecx
mulsd xmm1, xmm4
jmp 0x656941
movsd xmm3, qword [esp + 8]
movsd xmm2, qword [0x6fd7c0]
movaps xmm0, xmm3
mov edi, dword [esp + 0x7c]
addsd xmm0, xmm2
mov ecx, dword [esp + 0x88]
comisd xmm1, xmm0
ja 0x656b19
subsd xmm2, xmm3
comisd xmm2, xmm1
jbe 0x6569b0
mov eax, esi
dec esi
cmp byte [esi], 0x30
je 0x6569a1
mov esi, eax
jmp 0x657020
mov edx, dword [esp + 0x78]
movaps xmm1, xmm6
movsd qword [esp + 8], xmm1
mov eax, dword [esp + 0x44]
test eax, eax
js 0x656b48
mov ecx, dword [esp + 0x30]
cmp ecx, 0xe
jg 0x656b48
cmp dword [esp + 0x58], 0
movsd xmm2, qword [ecx*8 + 0x74def0]
jge 0x656a51
mov ecx, dword [esp + 0x40]
test ecx, ecx
jg 0x656a51
xor eax, eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x70], eax
test ecx, ecx
js 0x656a32
mov ecx, dword [esp + 0x2c]
mulsd xmm2, xmm5
mov dword [esp + 0x88], ecx
comisd xmm2, xmm1
jae 0x656a32
mov eax, dword [esp + 0x88]
inc dword [esp + 0x88]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x78]
mov byte [eax], 0x31
lea esi, [eax + 1]
jmp 0x656fe4
mov eax, dword [esp + 0x88]
mov esi, edx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x58]
not eax
mov dword [esp + 0x88], eax
jmp 0x656fe4
movaps xmm0, xmm1
mov ecx, dword [esp + 0x78]
divsd xmm0, xmm2
lea esi, [ecx + 1]
xorps xmm3, xmm3
cvttsd2si edx, xmm0
mov al, dl
add al, 0x30
mov byte [ecx], al
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm2
subsd xmm1, xmm0
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jnp 0x656ac7
mov ecx, esi
sub ecx, dword [esp + 0x78]
nop dword [eax]
cmp ecx, dword [esp + 0x40]
je 0x656ad7
mulsd xmm1, xmm4
inc ecx
movaps xmm0, xmm1
divsd xmm0, xmm2
cvttsd2si edx, xmm0
mov al, dl
add al, 0x30
mov byte [esi], al
inc esi
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm2
subsd xmm1, xmm0
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jp 0x656a90
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x88], eax
jmp 0x657020
mov ecx, dword [esp + 0x28]
addsd xmm1, xmm1
mov dword [esp + 0x88], ecx
comisd xmm1, xmm2
ja 0x656b19
mov eax, dword [esp + 0x24]
ucomisd xmm1, xmm2
mov dword [esp + 0x88], eax
lahf
test ah, 0x44
jp 0x657020
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x88], ecx
test dl, 1
je 0x657020
mov edx, dword [esp + 0x78]
dec esi
cmp byte [esi], 0x39
jne 0x656b40
cmp esi, edx
je 0x656b35
dec esi
cmp byte [esi], 0x39
je 0x656b23
inc byte [esi]
inc esi
jmp 0x657020
inc ecx
mov byte [esi], 0x30
mov dword [esp + 0x88], ecx
inc byte [esi]
inc esi
jmp 0x657020
mov edx, dword [esp + 0x64]
xor ecx, ecx
mov esi, edx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x50], esi
mov dword [esp + 0x7c], ecx
cmp dword [esp + 0x60], ecx
je 0x656ba4
cmp dword [esp + 0x3c], ecx
je 0x656b73
add eax, 0x433
jmp 0x656b7c
mov eax, 0x36
sub eax, dword [esp + 0x4c]
add dword [esp + 0x74], eax
add edx, eax
push 1
mov dword [esp + 0x68], edx
call fcn.006559e0
mov ecx, eax
add esp, 4
mov dword [esp + 0x7c], ecx
mov dword [ecx + 0x14], 1
mov dword [ecx + 0x10], 1
test esi, esi
jle 0x656bc7
mov edx, dword [esp + 0x74]
test edx, edx
jle 0x656bc7
cmp esi, edx
mov eax, edx
cmovl eax, esi
sub dword [esp + 0x64], eax
sub esi, eax
sub edx, eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x656c05
cmp dword [esp + 0x60], 0
push eax
je 0x656bfa
push ecx
call fcn.006577a0
push edi
push eax
mov dword [esp + 0x8c], eax
call fcn.00657560
push edi
mov esi, eax
call fcn.00655ab0
add esp, 0x14
mov edi, esi
jmp 0x656c05
push edi
call fcn.006577a0
add esp, 8
mov edi, eax
push 1
call fcn.006559e0
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x34]
mov dword [esp + 0x70], esi
mov dword [esi + 0x14], 1
mov dword [esi + 0x10], 1
test eax, eax
jle 0x656c3b
push eax
push esi
call fcn.006577a0
add esp, 8
mov dword [esp + 0x70], eax
mov esi, eax
cmp dword [esp + 0x8c], 2
mov dword [esp + 0x34], 0
jl 0x656c54
cmp dword [esp + 0x60], 0
je 0x656c84
cmp dword [esp + 8], 0
jne 0x656c84
mov eax, dword [esp + 0xc]
test eax, 0xfffff
jne 0x656c84
test eax, 0x7fe00000
mov eax, dword [esp + 0x74]
je 0x656c88
inc dword [esp + 0x64]
inc eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x34], 1
jmp 0x656c88
mov eax, dword [esp + 0x74]
push eax
push esi
call fcn.006562e0
mov edx, dword [esp + 0x6c]
add esp, 8
mov ecx, dword [esp + 0x74]
add edx, eax
add dword [esp + 0x50], eax
add ecx, eax
mov dword [esp + 0x74], ecx
test edx, edx
jle 0x656cba
push edx
push edi
call fcn.006573c0
mov ecx, dword [esp + 0x7c]
add esp, 8
mov edi, eax
test ecx, ecx
jle 0x656cce
push ecx
push esi
call fcn.006573c0
mov esi, eax
add esp, 8
mov dword [esp + 0x70], esi
cmp dword [esp + 0x48], 0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x88], eax
je 0x656d43
mov eax, dword [esp + 0x14]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x10]
push esi
push edi
mov dword [esp + 0x64], eax
call fcn.00656030
add esp, 8
test eax, eax
jns 0x656d43
mov eax, dword [esp + 0x30]
push 0
dec eax
push 0xa
push edi
mov dword [esp + 0x94], eax
call fcn.006576b0
mov esi, dword [esp + 0x6c]
add esp, 0xc
mov edi, eax
mov eax, dword [esp + 0x7c]
test esi, esi
je 0x656d39
push 0
push 0xa
push eax
call fcn.006576b0
add esp, 0xc
mov dword [esp + 0x7c], eax
mov edx, dword [esp + 0x54]
mov dword [esp + 0x5c], edx
jmp 0x656d4f
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x7c]
test edx, edx
jg 0x656daa
mov ecx, dword [esp + 0x8c]
cmp ecx, 3
je 0x656d64
cmp ecx, 5
jne 0x656daa
mov esi, dword [esp + 0x78]
test edx, edx
js 0x656873
push 0
push 5
push dword [esp + 0x78]
call fcn.006576b0
push eax
push edi
mov dword [esp + 0x84], eax
call fcn.00656030
add esp, 0x14
test eax, eax
jle 0x656873
inc dword [esp + 0x88]
mov eax, esi
mov byte [eax], 0x31
lea esi, [eax + 1]
jmp 0x656fe4
test esi, esi
je 0x657048
mov ecx, dword [esp + 0x50]
test ecx, ecx
jle 0x656dca
push ecx
push eax
call fcn.006573c0
add esp, 8
mov dword [esp + 0x7c], eax
jmp 0x656dce
mov eax, dword [esp + 0x7c]
cmp dword [esp + 0x34], 0
mov dword [esp + 0x6c], eax
je 0x656e0e
push dword [eax + 4]
call fcn.006559e0
mov esi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x10]
lea ecx, [ecx*4 + 8]
push ecx
lea ecx, [eax + 0xc]
push ecx
lea ecx, [esi + 0xc]
push ecx
call fcn.00689000
push 1
push esi
call fcn.006573c0
add esp, 0x18
mov dword [esp + 0x7c], eax
mov esi, dword [esp + 0x78]
mov dword [esp + 0x48], 1
nop word [eax + eax]
push dword [esp + 0x70]
push edi
call fcn.006579a0
push dword [esp + 0x74]
add eax, 0x30
push edi
mov dword [esp + 0x84], eax
call fcn.00656030
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x8c]
push eax
push dword [esp + 0x84]
call fcn.006561a0
add esp, 0x18
mov dword [esp + 0x10], eax
cmp dword [eax + 0xc], 0
je 0x656e6d
mov dword [esp + 0x30], 1
jmp 0x656e7b
push eax
push edi
call fcn.00656030
add esp, 8
mov dword [esp + 0x30], eax
push dword [esp + 0x10]
call fcn.00655ab0
mov eax, dword [esp + 0x34]
add esp, 4
mov edx, dword [esp + 8]
test eax, eax
jne 0x656ea6
cmp dword [esp + 0x8c], 1
je 0x656ea6
test dl, 1
je 0x656f48
mov ecx, dword [esp + 0x34]
test ecx, ecx
js 0x656f70
jne 0x656ec7
cmp dword [esp + 0x8c], 1
je 0x656ec7
test dl, 1
je 0x656f70
test eax, eax
jg 0x656f61
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x5c]
mov byte [esi], cl
inc esi
cmp dword [esp + 0x48], eax
je 0x65709a
push 0
push 0xa
push edi
call fcn.006576b0
mov ecx, dword [esp + 0x78]
add esp, 0xc
mov edi, eax
mov eax, dword [esp + 0x7c]
push 0
push 0xa
cmp ecx, eax
jne 0x656f1d
push eax
call fcn.006576b0
add esp, 0xc
mov dword [esp + 0x6c], eax
inc dword [esp + 0x48]
mov dword [esp + 0x7c], eax
jmp 0x656e20
push ecx
call fcn.006576b0
push 0
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x8c]
push 0xa
push eax
call fcn.006576b0
add esp, 0x18
mov dword [esp + 0x7c], eax
inc dword [esp + 0x48]
jmp 0x656e20
mov eax, dword [esp + 0x74]
cmp eax, 0x39
je 0x656fc5
mov ecx, dword [esp + 0x34]
test ecx, ecx
jle 0x656f5a
inc eax
mov byte [esi], al
jmp 0x656fe3
mov eax, dword [esp + 0x74]
cmp eax, 0x39
je 0x656fc5
inc al
mov byte [esi], al
jmp 0x656fe3
cmp dword [edi + 0x14], 0
jne 0x656f80
cmp dword [edi + 0x10], 1
jle 0x657040
test eax, eax
jle 0x657040
push 1
push edi
call fcn.006573c0
push dword [esp + 0x78]
mov edi, eax
push edi
call fcn.00656030
mov ecx, dword [esp + 0x84]
add esp, 0x10
test eax, eax
jg 0x656fb9
jne 0x657044
test cl, 1
je 0x657044
mov eax, ecx
inc ecx
cmp eax, 0x39
jne 0x657044
mov byte [esi], 0x39
inc esi
dec esi
cmp byte [esi], 0x39
jne 0x656fe1
mov eax, dword [esp + 0x78]
cmp esi, eax
je 0x6570d5
dec esi
cmp byte [esi], 0x39
je 0x656fd3
inc byte [esi]
inc esi
push dword [esp + 0x70]
call fcn.00655ab0
mov eax, dword [esp + 0x80]
add esp, 4
test eax, eax
je 0x657020
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x657017
cmp ecx, eax
je 0x657017
push ecx
call fcn.00655ab0
mov eax, dword [esp + 0x80]
add esp, 4
push eax
call fcn.00655ab0
add esp, 4
test edi, edi
je 0x657127
cmp dword [edi + 4], 7
jle 0x6570e4
push edi
call fcn.006a389b
add esp, 4
jmp 0x657127
mov ecx, dword [esp + 0x74]
mov byte [esi], cl
jmp 0x656fe3
mov esi, dword [esp + 0x78]
mov dword [esp + 0x48], 1
push dword [esp + 0x70]
push edi
call fcn.006579a0
add eax, 0x30
add esp, 8
mov byte [esi], al
inc esi
cmp dword [edi + 0x14], 0
mov dword [esp + 0x74], eax
jne 0x65707b
cmp dword [edi + 0x10], 1
jle 0x656fe4
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x48], eax
jge 0x65709a
push 0
push 0xa
push edi
call fcn.006576b0
add esp, 0xc
mov edi, eax
inc dword [esp + 0x48]
jmp 0x657054
push 1
push edi
call fcn.006573c0
push dword [esp + 0x78]
mov edi, eax
push edi
call fcn.00656030
add esp, 0x10
test eax, eax
jg 0x656fc9
jne 0x6570c6
test byte [esp + 0x74], 1
jne 0x656fc9
mov eax, esi
dec esi
cmp byte [esi], 0x30
je 0x6570c6
mov esi, eax
jmp 0x656fe4
inc dword [esp + 0x88]
mov byte [esi], 0x31
jmp 0x656fe3
cmp dword [0xabebac], 1
jne 0x6570f2
call fcn.006345a0
mov ecx, 0xabec68
call fcn.006542a0
mov edx, dword [edi + 4]
mov eax, dword [edx*4 + 0xabf598]
mov dword [edi], eax
cmp dword [0xabebac], 1
mov dword [edx*4 + 0xabf598], edi
jne 0x65711d
call fcn.006345a0
mov ecx, 0xabec68
call fcn.006542c0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x88]
inc ecx
mov byte [esi], 0
pop edi
mov dword [eax], ecx
mov eax, dword [esp + 0x98]
test eax, eax
je 0x657149
mov dword [eax], esi
mov eax, dword [esp + 0x74]
pop esi
add esp, 0x78
ret