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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
movsd xmm0, qword [ebp + 8]
mov ecx, dword [0x64a040]
xor ecx, ebp
mov dword [esp + 0xd0], ecx
cmp dword [ebp + 0x10], 2
jne 0x5685af
movsd qword [esp + 0x90], xmm0
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
test eax, 0x7ff00000
je 0x568f2e
mov esi, eax
or esi, 0x100000
shr eax, 0x14
and eax, 0x7ff
add eax, 0xfffffbcd
mov edx, eax
mov dword [esp + 0x1c], edx
shld esi, ecx, 0xb
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
shl ecx, 0xb
mov dword [esp + 0x10], ecx
mov eax, 0xffffffce
sub eax, edx
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mulsd xmm0, qword [0x63d620]
movsd qword [esp], xmm0
call fcn.005aa230
fstp qword [esp + 0xa0]
cvttsd2si ecx, qword [esp + 0xa0]
lea eax, [ecx + 0x15b]
add ecx, 0x162
test eax, eax
cmovns ecx, eax
add ecx, ecx
and ecx, 0xfffffff0
mov dword [esp + 0x28], esi
mov ebx, dword [ecx + 0x63f1bc]
mov edi, ecx
mov eax, ebx
mul esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], eax
mov eax, ebx
mul dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], edx
mov ecx, dword [ecx + 0x63f1b8]
mov esi, edi
mov dword [esp + 0x24], edi
mov eax, ecx
mul dword [esp + 0x28]
mov edi, edx
mov ebx, eax
mov eax, ecx
mul dword [esp + 0x10]
xor ecx, ecx
add edx, ebx
setb cl
add edx, dword [esp + 0x18]
adc ecx, 0
movsx eax, word [esi + 0x63f1c0]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
add edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
adc esi, 0
add edi, dword [esp + 0x34]
adc esi, 0
add edx, 0x80000000
adc edi, ecx
adc esi, 0
mov dword [esp + 0x20], esi
mov ecx, 0xffffffcb
sub ecx, eax
xor eax, eax
inc eax
xor edx, edx
shld edx, eax, cl
shl eax, cl
mov ebx, edi
shrd ebx, esi, cl
shr esi, cl
mov dword [esp + 0x2c], ecx
test cl, 0x20
cmove esi, ebx
cmovne edx, eax
mov ebx, 0
cmovne eax, ebx
mov dword [esp + 0x18], eax
add eax, 0xffffffff
mov dword [esp + 0x28], edx
adc edx, 0xffffffff
mov dword [esp + 0x5c], edx
and dword [esp + 0x20], edx
mov dword [esp + 0x60], eax
and edi, eax
mov dword [esp + 0x1c], edi
imul eax, dword [esp + 0x10], 0x4d1
add eax, 0x23856
sar eax, 0xc
cmp dword [eax*4 + 0x63d62c], esi
lea ebx, [eax + 1]
cmova ebx, eax
mov eax, dword [esp + 0x24]
movsx eax, word [eax + 0x63f1c2]
mov dword [esp + 0x34], eax
mov edx, dword [ebx*4 + 0x63d628]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x10], 0
xor edi, edi
mov dword [eax], edi
mov edi, edx
test ebx, ebx
mov edx, ebx
jle 0x56831d
mov eax, esi
mov ebx, edx
xor edx, edx
div edi
add al, 0x30
mov esi, dword [ebp + 0x18]
mov ecx, edi
mov edi, dword [esp + 0x10]
mov byte [esi + edi], al
mov eax, dword [ebp + 0x20]
mov edi, dword [eax]
inc edi
mov esi, edi
mov dword [esp + 0x10], edi
mov dword [eax], edi
mov edi, ecx
mov esi, edx
mov eax, ecx
mov ecx, 0xcccccccd
mul ecx
dec ebx
shr edx, 3
dec dword [esp + 0x14]
jne 0x568201
mov dword [esp + 0x24], ebx
mov eax, edi
mov ecx, dword [esp + 0x2c]
shl eax, cl
xor edx, edx
test cl, 0x20
mov ebx, eax
cmovne ebx, edx
mov dword [esp + 0x14], ebx
xor ebx, ebx
shld ebx, edi, cl
test cl, 0x20
cmovne ebx, eax
mov edi, esi
shl edi, cl
test cl, 0x20
mov eax, edi
cmovne eax, edx
xor edx, edx
shld edx, esi, cl
mov esi, edx
test cl, 0x20
cmovne esi, edi
mov edi, ebx
mov ebx, dword [esp + 0x14]
add eax, dword [esp + 0x1c]
adc esi, dword [esp + 0x20]
cmp ebx, 3
mov ecx, edi
sbb ecx, 0
jb 0x568319
mov ecx, ebx
sub ecx, eax
mov edx, edi
sbb edx, esi
cmp eax, ecx
mov ecx, esi
sbb ecx, edx
jae 0x56849a
mov ecx, esi
shld ecx, eax, 1
lea edx, [eax + eax]
mov dword [esp + 0x20], esi
mov esi, ebx
sub esi, edx
mov edx, edi
sbb edx, ecx
xor ecx, ecx
mov ebx, edi
xor edi, edi
inc edi
cmp edi, esi
mov esi, dword [esp + 0x20]
mov edi, ebx
mov ebx, dword [esp + 0x14]
sbb ecx, edx
jae 0x56849a
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
sub edx, esi
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
add edx, dword [ecx]
mov dword [eax], edx
mov eax, dword [ecx]
mov ecx, dword [ebp + 0x18]
mov byte [ecx + eax], 0
mov bl, 1
mov ecx, dword [esp + 0xd0]
xor ecx, ebp
call fcn.005810d5
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
jmp 0x568301
mov eax, dword [esp + 0x14]
test eax, eax
je 0x568f92
xor ebx, ebx
test eax, eax
mov eax, dword [esp + 0x1c]
jle 0x568301
cmp eax, 2
mov esi, dword [esp + 0x20]
mov edi, esi
sbb edi, 0
jb 0x568301
mov dword [esp + 0x30], 0
xor edi, edi
inc edi
mov dword [esp + 0x24], edx
mov ecx, 0xa
mul ecx
lea esi, [esi + esi*4]
lea ebx, [edx + esi*2]
mov dword [esp + 0x1c], eax
mov esi, eax
mov ecx, dword [esp + 0x2c]
shrd esi, ebx, cl
mov eax, edi
mov edi, ebx
shr edi, cl
mov dword [esp + 0x4c], eax
mov edx, 0xa
mul edx
test cl, 0x20
mov ecx, edi
cmove ecx, esi
add cl, 0x30
mov esi, dword [ebp + 0x18]
mov edi, dword [esp + 0x10]
mov byte [esi + edi], cl
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
lea edi, [edi + edi*4]
mov dword [esp + 0x48], edi
lea edx, [edx + edi*2]
mov dword [esp + 0x30], edx
mov ecx, dword [ebp + 0x20]
mov edx, dword [ecx]
mov dword [esp + 0x58], edx
lea edi, [edx + 1]
mov edx, edi
mov dword [esp + 0x10], edi
mov dword [ecx], edi
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
and ecx, dword [esp + 0x60]
and ebx, dword [esp + 0x5c]
dec edx
mov edi, eax
cmp esi, 2
lea eax, [esi - 1]
mov dword [esp + 0x14], eax
mov esi, ebx
mov eax, ecx
jb 0x5683ef
cmp edi, eax
mov ebx, edi
mov edi, dword [esp + 0x30]
sbb edi, esi
mov edi, ebx
jb 0x56834c
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
jne 0x568319
mov dword [esp + 0x24], edx
mov edx, ecx
mov ecx, ebx
mov ebx, edx
sub ebx, edi
mov dword [esp + 0x10], ebx
mov ebx, ecx
mov edx, dword [esp + 0x30]
sbb ebx, edx
mov dword [esp + 0x14], ebx
cmp edi, dword [esp + 0x18]
mov ebx, edx
sbb edx, ecx
jae 0x568319
mov dword [esp + 0x2c], edi
cmp edi, dword [esp + 0x10]
sbb ebx, dword [esp + 0x14]
mov ebx, 0
jae 0x568301
mov edi, dword [esp + 0x18]
mov edx, edi
sub edx, eax
mov ebx, dword [esp + 0x28]
mov ecx, ebx
sbb ecx, esi
cmp eax, edx
mov edx, esi
sbb edx, ecx
jae 0x568511
mov edx, esi
shld edx, eax, 1
lea ecx, [eax + eax]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], esi
sub edi, ecx
sbb ebx, edx
mov edx, 0x14
mov eax, dword [esp + 0x4c]
mul edx
cmp edi, eax
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x48]
lea edx, [edx + edi*4]
sbb ebx, edx
jae 0x5682e2
jmp 0x568511
cmp eax, 2
mov ecx, esi
sbb ecx, 0
jb 0x568319
add eax, 0xffffffff
adc esi, 0xffffffff
sub ebx, eax
sbb edi, esi
cmp eax, ebx
sbb esi, edi
jb 0x568319
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x10]
mov al, byte [edx + ecx - 1]
inc al
mov byte [edx + ecx - 1], al
cmp edx, 2
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
jl 0x5684de
cmp al, 0x3a
je 0x5684ef
mov eax, dword [ebp + 0x18]
cmp byte [eax], 0x3a
jne 0x5682ea
jmp 0x568fe3
mov ecx, dword [ebp + 0x18]
mov edi, dword [esp + 0x10]
mov byte [ecx + edi - 1], 0x30
mov al, byte [ecx + edi - 2]
inc al
mov byte [ecx + edi - 2], al
dec edi
mov dword [esp + 0x10], edi
cmp edi, 1
jg 0x5684da
jmp 0x5684de
mov edx, dword [esp + 0x2c]
cmp edx, eax
mov edi, dword [esp + 0x30]
mov ecx, edi
sbb ecx, esi
jae 0x568319
sub eax, edx
sbb esi, edi
mov edx, dword [esp + 0x18]
sub edx, eax
mov ecx, dword [esp + 0x28]
sbb ecx, esi
cmp eax, edx
sbb esi, ecx
jb 0x568319
mov ecx, dword [ebp + 0x18]
mov edi, dword [esp + 0x58]
mov al, byte [ecx + edi]
inc al
mov byte [ecx + edi], al
test edi, edi
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
jle 0x5684de
inc edi
cmp al, 0x3a
jne 0x5684de
mov ecx, dword [ebp + 0x18]
mov byte [ecx + edi - 1], 0x30
mov al, byte [ecx + edi - 2]
inc al
mov byte [ecx + edi - 2], al
dec edi
cmp edi, 1
jg 0x56855b
jmp 0x5684de
mov esi, dword [esp + 0x60]
and esi, 0x7fefffff
or esi, edi
mov esi, dword [esp + 0x14]
je 0x5686b6
mov edx, dword [esp + 0x2c]
add edx, 0xfffffffe
mov esi, dword [esp + 0x1c]
shld esi, edi, 2
shl edi, 2
mov eax, edi
jmp 0x5686b6
jae 0x568f29
movsd qword [esp + 0x88], xmm0
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov esi, 0x100000
dec esi
and esi, ecx
mov edi, esi
or edi, 0x100000
mov edx, ecx
shr edx, 0x14
and edx, 0x7ff
add edx, 0xfffffbcd
mov dword [esp + 0x24], ebx
mov dword [esp + 0x60], ecx
test ecx, 0x7ff00000
mov ecx, 0xfffffbce
mov eax, edx
cmove eax, ecx
mov dword [esp + 0x2c], eax
mov ecx, edi
cmove ecx, esi
mov dword [esp + 0x1c], ecx
je 0x568f70
mov dword [esp + 0x20], edx
shld edi, ebx, 0xb
mov dword [esp + 0x34], edi
shl ebx, 0xb
mov dword [esp + 0x28], ebx
xor ecx, ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], ecx
cmp dword [ebp + 0x10], 0
jne 0x568f99
mov eax, dword [esp + 0x2c]
lea edx, [eax - 1]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
shld edi, ecx, 1
lea eax, [ecx + ecx]
lea ebx, [ecx*2 + 1]
mov dword [esp + 0x14], edi
mov ecx, edx
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shld dword [esp + 0x10], ebx, 0xa
shl ebx, 0xa
add ecx, 0xfffffff6
test edi, 0xfffff000
mov edi, dword [esp + 0x10]
je 0x568676
mov dword [esp + 0x18], ebx
test edi, edi
jns 0x568f4a
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
or esi, edi
je 0x568580
mov esi, dword [esp + 0x14]
add eax, 0xffffffff
adc esi, 0xffffffff
sub edx, ecx
mov ecx, edx
shld esi, eax, cl
shl eax, cl
xor ecx, ecx
test dl, 0x20
cmovne esi, eax
mov dword [esp + 0x14], esi
cmove ecx, eax
mov dword [esp + 0x24], ecx
mov eax, 0xffffffce
sub eax, dword [esp + 0x20]
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mulsd xmm0, qword [0x63d620]
movsd qword [esp], xmm0
call fcn.005aa230
fstp qword [esp + 0x98]
cvttsd2si ecx, qword [esp + 0x98]
lea eax, [ecx + 0x15b]
add ecx, 0x162
test eax, eax
cmovns ecx, eax
add ecx, ecx
and ecx, 0xfffffff0
mov edi, dword [ecx + 0x63f1bc]
mov dword [esp + 0x1c], edi
mov esi, ecx
mov eax, edi
mov ecx, dword [esp + 0x34]
mul ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x30], edx
and ebx, 0xfffff800
mov eax, edi
mul ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x54], edx
mov eax, dword [esi + 0x63f1b8]
mov edi, esi
mov dword [esp + 0x40], esi
mov esi, eax
mov dword [esp + 0x2c], eax
mul ecx
mov dword [esp + 0x7c], edx
mov ecx, eax
mov eax, esi
mul ebx
xor eax, eax
add edx, ecx
setb al
add edx, dword [esp + 0x28]
mov dword [esp + 0x44], edx
adc eax, 0
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x14]
mov eax, esi
mov ebx, dword [esp + 0x1c]
mul ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x24]
mov eax, ecx
mul ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], eax
mov eax, esi
mov ebx, dword [esp + 0x2c]
mul ebx
mov esi, edx
mov dword [esp + 0x14], eax
mov eax, ecx
mul ebx
movsx eax, word [edi + 0x63f1c0]
add eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
xor eax, eax
add edx, dword [esp + 0x14]
setb al
add edx, dword [esp + 0x5c]
mov dword [esp + 0x20], edx
adc eax, 0
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x10]
mov eax, edi
mov ecx, dword [esp + 0x1c]
mul ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x5c], eax
mov ebx, dword [esp + 0x18]
mov eax, ebx
mul ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x48], eax
mov eax, edi
mov ecx, dword [esp + 0x2c]
mul ecx
mov edi, edx
mov dword [esp + 0x10], eax
mov eax, ebx
mul ecx
xor eax, eax
add edx, dword [esp + 0x10]
setb al
add edx, dword [esp + 0x48]
adc eax, 0
add edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x4c]
adc ebx, 0
add edi, dword [esp + 0x1c]
adc ebx, 0
add edx, 0x80000000
adc edi, eax
adc ebx, 0
add edi, 1
mov dword [esp + 0x48], edi
adc ebx, 0
add esi, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
adc eax, 0
add esi, dword [esp + 0x60]
adc eax, 0
add dword [esp + 0x20], 0x80000000
adc esi, dword [esp + 0x14]
adc eax, 0
mov edx, eax
sub edi, esi
mov ecx, ebx
mov esi, ebx
sbb ecx, eax
mov dword [esp + 0x78], edi
add edi, 1
mov dword [esp + 0x28], edi
mov dword [esp + 0x74], ecx
mov eax, ecx
adc eax, 0
mov dword [esp + 0x20], eax
mov ecx, 0xffffffcb
sub ecx, dword [esp + 0x24]
xor eax, eax
inc eax
xor edx, edx
shld edx, eax, cl
mov dword [esp + 0x2c], eax
shl eax, cl
mov edi, dword [esp + 0x48]
shrd edi, ebx, cl
mov dword [esp + 0x4c], ebx
shr esi, cl
mov dword [esp + 0x34], ecx
test cl, 0x20
cmove esi, edi
cmovne edx, eax
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x58], eax
add eax, 0xffffffff
mov dword [esp + 0x6c], edx
adc edx, 0xffffffff
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x5c], edx
and ecx, edx
mov dword [esp + 0x10], ecx
mov edi, dword [esp + 0x48]
mov ecx, edi
mov dword [esp + 0x60], eax
and ecx, eax
imul eax, dword [esp + 0x24], 0x4d1
add eax, 0x23856
sar eax, 0xc
cmp dword [eax*4 + 0x63d62c], esi
lea edx, [eax + 1]
cmova edx, eax
mov ebx, dword [esp + 0x7c]
add ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
adc eax, 0
add ebx, dword [esp + 0x54]
adc eax, 0
add dword [esp + 0x44], 0x80000000
adc ebx, dword [esp + 0x38]
adc eax, 0
sub edi, ebx
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x28]
sbb dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
movsx eax, word [eax + 0x63f1c2]
mov dword [esp + 0x7c], eax
mov eax, dword [edx*4 + 0x63d628]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x20]
xor ebx, ebx
mov dword [eax], ebx
mov eax, edx
sar eax, 0x1f
and eax, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x568a13
mov dword [esp + 0x24], edx
mov eax, esi
xor edx, edx
div dword [esp + 0x1c]
add al, 0x30
mov ebx, dword [ebp + 0x20]
mov esi, ecx
mov ecx, dword [ebx]
mov ebx, edi
mov edi, dword [ebp + 0x18]
mov byte [edi + ecx], al
xor eax, eax
mov edi, edx
mov ecx, dword [esp + 0x34]
shld eax, edx, cl
mov edx, dword [ebp + 0x20]
mov edx, dword [edx]
mov dword [esp + 0x30], edx
inc edx
mov dword [esp + 0x18], edi
shl edi, cl
test cl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
mov ecx, dword [ebp + 0x20]
mov dword [ecx], edx
mov edx, dword [esp + 0x20]
add edi, esi
adc eax, dword [esp + 0x10]
cmp edi, ebx
mov esi, eax
sbb eax, edx
jb 0x568cfd
mov eax, dword [esp + 0x1c]
mov ecx, 0xcccccccd
mul ecx
shr edx, 3
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
dec edx
mov eax, dword [esp + 0x28]
cmp edi, eax
mov edi, eax
sbb esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
jae 0x568974
jmp 0x568add
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x54]
mov dword [esp + 0x24], edx
mov eax, ecx
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 0x10]
lea ecx, [ecx + ecx*4]
lea ebx, [edx + ecx*2]
mov dword [esp + 0x14], eax
mov esi, eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x10], ebx
shrd esi, ebx, cl
mov eax, dword [esp + 0x2c]
shr ebx, cl
mov dword [esp + 0x30], eax
mov edx, 0xa
mul edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], eax
mov eax, edi
mov edx, 0xa
mul edx
test cl, 0x20
cmove ebx, esi
add bl, 0x30
mov ecx, dword [ebp + 0x20]
mov esi, dword [ecx]
mov edi, dword [ebp + 0x18]
mov byte [edi + esi], bl
mov esi, dword [esp + 0x20]
lea esi, [esi + esi*4]
lea esi, [edx + esi*2]
mov ebx, dword [esp + 0x10]
and ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x14]
and edx, dword [esp + 0x60]
mov edi, eax
mov dword [esp + 0x14], edx
cmp edx, eax
mov dword [esp + 0x10], ebx
mov eax, ebx
sbb eax, esi
mov ebx, dword [ecx]
lea eax, [ebx + 1]
mov dword [ecx], eax
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + ecx*4]
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*2]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], esi
jb 0x568af1
mov edx, dword [esp + 0x24]
dec edx
mov ecx, dword [esp + 0x14]
cmp ecx, edi
mov eax, dword [esp + 0x10]
sbb eax, esi
jae 0x568a1f
test byte [esp + 0xc], 1
je 0x568319
sub edx, dword [esp + 0x7c]
jmp 0x5682ec
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], edx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x2c]
mov eax, ecx
mov ebx, dword [esp + 0x48]
mul ebx
mov dword [esp + 0x18], edx
imul ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x1c]
imul edx, ebx
add edx, dword [esp + 0x18]
add edx, ecx
mov ebx, eax
sub ebx, dword [esp + 0x2c]
mov ecx, edx
sbb ecx, dword [esp + 0x1c]
add eax, dword [esp + 0x2c]
mov dword [esp + 0x54], eax
adc edx, dword [esp + 0x1c]
mov dword [esp + 0x44], edx
mov dword [esp + 0x28], edi
mov eax, edi
mov edi, dword [esp + 0x14]
sub eax, edi
mov edx, esi
mov esi, dword [esp + 0x10]
sbb edx, esi
cmp eax, dword [esp + 0x58]
mov eax, dword [esp + 0x6c]
sbb edx, eax
setb dl
mov dword [esp + 0x38], edx
mov edx, esi
jb 0x568c22
mov dword [esp + 0xc], ebx
cmp edi, ebx
mov eax, edx
sbb eax, ecx
mov esi, edi
mov eax, edx
mov edi, dword [esp + 0x58]
jae 0x568c2c
mov ebx, ecx
mov ecx, dword [esp + 0x14]
mov eax, edx
mov esi, ecx
mov dword [esp + 0x3c], edx
add esi, edi
adc eax, dword [esp + 0x6c]
cmp esi, dword [esp + 0xc]
mov dword [esp + 0x18], eax
sbb eax, ebx
jb 0x568bd0
mov edi, dword [esp + 0xc]
mov eax, edi
sub eax, ecx
mov dword [esp + 0x38], eax
mov edx, ebx
sbb edx, dword [esp + 0x3c]
mov eax, esi
sub eax, edi
mov edi, ecx
mov ecx, dword [esp + 0x18]
sbb ecx, ebx
cmp dword [esp + 0x38], eax
sbb edx, ecx
mov eax, edi
mov edi, dword [esp + 0x58]
jb 0x568ca1
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x74]
dec byte [eax + ecx]
mov edx, dword [esp + 0x28]
sub edx, esi
mov eax, dword [esp + 0x20]
sbb eax, dword [esp + 0x18]
cmp edx, edi
mov ecx, eax
mov edi, dword [esp + 0x6c]
sbb ecx, edi
setb cl
mov dword [esp + 0x38], ecx
cmp esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
sbb ecx, ebx
jae 0x568c28
mov ecx, dword [esp + 0x58]
cmp edx, ecx
mov edx, ecx
sbb eax, edi
mov ecx, esi
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov edi, edx
jb 0x568c2c
jmp 0x568b8e
mov esi, edi
mov eax, edx
jmp 0x568c2c
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
cmp esi, ecx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x44]
sbb eax, edx
mov edi, dword [esp + 0x30]
jae 0x568c49
cmp byte [esp + 0x38], 0
je 0x568cb4
mov eax, edi
mov ecx, 0x14
mul ecx
mov ecx, dword [esp + 0x78]
lea ecx, [edx + ecx*4]
cmp esi, eax
mov ebx, dword [esp + 0x18]
mov eax, ebx
sbb eax, ecx
setae byte [esp + 0xc]
mov eax, edi
mov edx, 0xffffffd8
mul edx
sub edx, edi
mov ecx, esi
mov esi, dword [esp + 0x40]
shl esi, 3
lea esi, [esi + esi*4]
sub edx, esi
mov edi, dword [esp + 0x28]
add eax, edi
mov esi, dword [esp + 0x20]
adc edx, esi
cmp eax, ecx
sbb edx, ebx
setae al
and al, byte [esp + 0xc]
mov dword [esp + 0xc], eax
jmp 0x568ac6
mov dword [esp + 0x38], 0
mov esi, eax
mov eax, dword [esp + 0x3c]
jmp 0x568c2c
mov ebx, edx
mov edx, esi
add edx, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
adc eax, dword [esp + 0x6c]
cmp edx, ecx
mov ecx, eax
sbb ecx, ebx
jb 0x568fec
mov ecx, dword [esp + 0x54]
sub ecx, esi
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0x44]
mov esi, ebx
sbb esi, dword [esp + 0x18]
sub edx, dword [esp + 0x54]
sbb eax, ebx
cmp edx, ecx
sbb eax, esi
mov esi, dword [esp + 0xc]
jae 0x568c49
jmp 0x568fec
mov edx, dword [esp + 0x48]
mov eax, edx
add eax, 0xffffffff
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x4c]
mov eax, ecx
adc eax, 0xffffffff
mov dword [esp + 0x38], eax
add edx, 1
mov dword [esp + 0x84], edx
adc ecx, 0
mov dword [esp + 0x40], ecx
xor eax, eax
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x1c]
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
mov ecx, dword [esp + 0x28]
sub ecx, edi
mov edx, dword [esp + 0x20]
mov dword [esp + 0xc], esi
sbb edx, dword [esp + 0xc]
mov dword [esp + 0x50], ecx
cmp ecx, ebx
mov ecx, edx
sbb ecx, eax
setb cl
mov dword [esp + 0x64], ecx
cmp edi, dword [esp + 0x44]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 0x38]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x68], eax
jae 0x568e5e
cmp dword [esp + 0x50], ebx
sbb edx, eax
mov edx, edi
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov eax, edi
jb 0x568e74
mov eax, edi
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x50], edi
mov dword [esp + 0x70], ebx
add eax, dword [esp + 0x3c]
adc ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
mov edx, ebx
sbb edx, dword [esp + 0x38]
jb 0x568dfc
sub ecx, dword [esp + 0x50]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x38]
sbb ecx, dword [esp + 0x70]
mov edx, eax
sub edx, dword [esp + 0x44]
mov dword [esp + 0x80], edx
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x38]
sbb dword [esp + 0xc], edx
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x64], edx
sbb ecx, dword [esp + 0xc]
jb 0x568f10
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x30]
dec byte [ecx + edx]
mov ecx, dword [esp + 0x28]
sub ecx, eax
mov edx, dword [esp + 0x20]
sbb edx, ebx
mov dword [esp + 0x50], ecx
cmp ecx, dword [esp + 0x3c]
mov ecx, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x68]
sbb ecx, eax
setb cl
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x44]
mov ecx, ebx
sbb ecx, dword [esp + 0x38]
jae 0x568e6c
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x50], ecx
sbb edx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ebx
mov ecx, dword [esp + 0x40]
jb 0x568e74
jmp 0x568da8
mov edx, edi
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov eax, edi
jmp 0x568e74
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x84]
mov dword [esp + 0xc], eax
cmp eax, edx
mov dword [esp + 0x30], ebx
sbb ebx, ecx
jae 0x568e90
cmp byte [esp + 0x64], 0
je 0x568ec7
mov eax, dword [esp + 0x78]
add eax, 0xfffffffd
mov ecx, dword [esp + 0x74]
adc ecx, 0xffffffff
xor edx, edx
inc edx
cmp edx, dword [esp + 0xc]
mov edx, 0
mov ebx, dword [esp + 0x30]
sbb edx, ebx
setb dl
cmp eax, dword [esp + 0xc]
sbb ecx, ebx
setae al
and al, dl
mov dword [esp + 0xc], eax
jmp 0x5689ef
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0xc]
adc eax, dword [esp + 0x30]
mov dword [esp + 0x3c], ebx
cmp ebx, edx
mov dword [esp + 0x68], eax
sbb eax, ecx
jb 0x568f03
mov eax, edx
sub eax, dword [esp + 0xc]
sbb ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x3c]
sub ebx, edx
mov edx, dword [esp + 0x68]
sbb edx, dword [esp + 0x40]
cmp ebx, eax
sbb edx, ecx
jae 0x568e90
mov dword [esp + 0xc], 0
jmp 0x5689ef
mov dword [esp + 0x64], 0
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x40]
jmp 0x568e74
call fcn.005e8f30
mov edx, 0xfffffbce
mov esi, eax
shld esi, ecx, 1
add ecx, ecx
dec edx
bt eax, 0x13
mov eax, esi
jb 0x568096
jmp 0x568f35
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
shld dword [esp + 0x10], edi, 1
add edi, edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x24]
dec ecx
cmp dword [esp + 0x10], 0
js 0x5686aa
jmp 0x568f4e
mov edx, 0xfffffbce
mov ebx, dword [esp + 0x24]
mov ecx, esi
mov edi, esi
shld edi, ebx, 1
add ebx, ebx
dec edx
bt ecx, 0x13
mov ecx, edi
jb 0x568618
jmp 0x568f7d
mov ebx, edx
jmp 0x568248
cvtsd2ss xmm0, xmm0
lea ecx, [esp + 0xac]
movss dword [ecx], xmm0
lea edi, [esp + 0xb0]
mov dword [esp], edi
lea esi, [esp + 0xc0]
mov edx, esi
call fcn.005f4720
mov eax, dword [esi]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x28]
jmp 0x5686d8
mov byte [eax], 0x31
inc edx
jmp 0x5682ea
mov dword [esp + 0xc], 0
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
jmp 0x568ac6