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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
sub esp, 0xbc
and esp, 0xfffffff8
mov dword [esp + 0x14], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x3c], 0
lea edi, [esp + 0x50]
mov esi, 0x661560
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], 0
lea eax, [esp + 0x78]
mov dword [esp + 0x18], eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x1c], 0
push 1
call fcn.005c4f80
pop ecx
mov eax, dword [eax + 0x27c]
mov esi, dword [eax]
movzx eax, byte [esi]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov ebx, dword [esp + 0x14]
mov edi, ebx
sub edi, 1
je 0x5a6382
sub edi, 1
je 0x5a6620
sub edi, 2
je 0x5a66c0
sub edi, 4
je 0x5a66f0
sub edi, 8
je 0x5a6762
sub edi, 0x10
je 0x5a6790
sub edi, 0x20
je 0x5a67f0
sub edi, 0x40
je 0x5a6840
sub edi, 0x80
je 0x5a6883
sub edi, 0x100
je 0x5a68d0
sub edi, 0x200
je 0x5a6900
sub edi, 0x1c00
je 0x5a64e2
sub edi, 0x2000
je 0x5a6440
sub edi, 0x4000
je 0x5a6968
jmp 0x5a6d2a
movzx ebx, al
movzx edx, byte [ebx + 0x618370]
and edx, 6
je 0x5a63a7
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
inc dword [esp + 0x3c]
jmp 0x5a6d2a
cmp eax, 0xffffffff
jne 0x5a63b1
or ecx, 0xffffffff
jmp 0x5a63b8
movzx ecx, byte [ebx + 0x618570]
mov esi, ecx
sub ecx, 0x2b
je 0x5a63d8
sub ecx, 2
je 0x5a63d0
sub ecx, 0x1c
je 0x5a63f6
sub ecx, 5
je 0x5a6414
jmp 0x5a6432
mov dword [esp + 0x40], 1
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov dword [esp + 0x48], 1
jmp 0x5a6d2a
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov dword [esp + 0x14], 0x4000
jmp 0x5a6d2a
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov dword [esp + 0x14], 0x2000
jmp 0x5a6d2a
mov dword [esp + 0x14], 2
jmp 0x5a6d2a
mov ebx, 1
lea edi, [esp + 0x84]
mov esi, str.INFINITY
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x5a6468
inc ebx
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
cmp ebx, 8
jge 0x5a648d
cmp eax, 0xffffffff
jne 0x5a6477
or edx, 0xffffffff
jmp 0x5a6481
movzx edx, al
movzx edx, byte [edx + 0x618570]
movsx ecx, byte [esp + ebx + 0x84]
cmp ecx, edx
je 0x5a6456
cmp ebx, 3
je 0x5a6497
cmp ebx, 8
jne 0x5a64d5
cmp dword [esp + 0x40], 0
je 0x5a64a8
fld dword [0x61a78c]
fchs
jmp 0x5a64ae
fld dword [0x61a78c]
fstp qword [esp + 0x78]
add dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x48]
mov dword [esp + 0x3c], eax
mov ecx, eax
mov eax, dword [ebp + 0x14]
mov dword [eax], ecx
fld qword [esp + 0x78]
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
mov dword [esp + 0x14], 0x1000
jmp 0x5a6d2a
mov ebx, 1
mov dword [esp + 4], 0
lea edi, [esp + 0x90]
mov esi, str.NAN_
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x98]
mov esi, 0x661586
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
jmp 0x5a6524
inc ebx
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
cmp ebx, 4
jge 0x5a6549
cmp eax, 0xffffffff
jne 0x5a6533
or edx, 0xffffffff
jmp 0x5a653d
movzx edx, al
movzx edx, byte [edx + 0x618570]
movsx ecx, byte [esp + ebx + 0x90]
cmp ecx, edx
je 0x5a6512
cmp ebx, 3
je 0x5a6557
cmp ebx, 4
jne 0x5a6611
cmp ebx, 4
jne 0x5a65b6
jmp 0x5a6580
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
cmp dword [esp + 4], 0x20
jge 0x5a65a0
movzx edx, al
movzx ecx, byte [edx + 0x618370]
mov edi, ecx
and edi, 0x10
jne 0x5a6560
and ecx, 0xc0
jne 0x5a6560
cmp eax, 0x29
je 0x5a65b2
mov dword [esp + 0x14], 0x1000
jmp 0x5a6d2a
inc dword [esp + 4]
mov eax, dword [esp + 4]
mov byte [esp + eax + 0x98], 0
cmp dword [esp + 0x40], 0
je 0x5a65e0
lea eax, [esp + 0x98]
push eax
call fcn.005c5645
pop ecx
fchs
jmp 0x5a65ee
lea eax, [esp + 0x98]
push eax
call fcn.005c5645
pop ecx
fstp qword [esp + 0x78]
mov esi, dword [esp + 0x3c]
add esi, ebx
add esi, dword [esp + 4]
add esi, dword [esp + 0x48]
mov eax, dword [ebp + 0x14]
mov dword [eax], esi
fld qword [esp + 0x78]
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
mov dword [esp + 0x14], 0x1000
jmp 0x5a6d2a
cmp eax, dword [esp + 0x34]
jne 0x5a6644
mov dword [esp + 0x14], 0x10
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
movzx ebx, al
movzx edx, byte [ebx + 0x618370]
and edx, 0x10
jne 0x5a6660
mov dword [esp + 0x14], 0x1000
jmp 0x5a6d2a
cmp eax, 0x30
jne 0x5a66b3
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x5a6682
or ecx, 0xffffffff
jmp 0x5a668c
movzx ecx, bl
movzx ecx, byte [ecx + 0x618570]
cmp ecx, 0x58
jne 0x5a66a6
mov dword [esp + 0x14], 0x8000
mov dword [esp + 0x24], 1
jmp 0x5a6d2a
mov dword [esp + 0x14], 4
jmp 0x5a6d2a
mov dword [esp + 0x14], 8
jmp 0x5a6d2a
cmp eax, 0x30
jne 0x5a66e0
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov dword [esp + 0x14], 8
jmp 0x5a6d2a
movzx edx, al
movzx ebx, byte [edx + 0x618370]
and ebx, 0x10
jne 0x5a6730
cmp eax, dword [esp + 0x34]
jne 0x5a6723
mov dword [esp + 0x14], 0x20
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov dword [esp + 0x14], 0x40
jmp 0x5a6d2a
cmp byte [esp + 0x54], 0x14
jae 0x5a6748
mov cl, byte [esp + 0x54]
inc byte [esp + 0x54]
movzx edx, cl
mov byte [esp + edx + 0x55], al
jmp 0x5a674c
inc dword [esp + 0x30]
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
movzx ebx, al
movzx ecx, byte [ebx + 0x618370]
and ecx, 0x10
jne 0x5a6780
mov dword [esp + 0x14], 0x1000
jmp 0x5a6d2a
mov dword [esp + 0x14], 0x20
jmp 0x5a6d2a
movzx edx, al
movzx ebx, byte [edx + 0x618370]
and ebx, 0x10
jne 0x5a67b0
mov dword [esp + 0x14], 0x40
jmp 0x5a6d2a
mov bl, byte [esp + 0x54]
cmp bl, 0x14
jae 0x5a67d5
cmp eax, 0x30
jne 0x5a67c2
test bl, bl
je 0x5a67d1
mov cl, byte [esp + 0x54]
inc byte [esp + 0x54]
movzx edx, cl
mov byte [esp + edx + 0x55], al
dec dword [esp + 0x30]
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
cmp eax, 0xffffffff
jne 0x5a6800
or ebx, 0xffffffff
jmp 0x5a680a
movzx ebx, al
movzx ebx, byte [ebx + 0x618570]
cmp ebx, 0x45
jne 0x5a6830
mov dword [esp + 0x14], 0x80
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov dword [esp + 0x14], 0x800
jmp 0x5a6d2a
cmp eax, 0x2b
jne 0x5a6858
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6876
cmp eax, 0x2d
jne 0x5a6876
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov dword [esp + 0x44], 1
mov dword [esp + 0x14], 0x100
jmp 0x5a6d2a
movzx ecx, al
movzx edx, byte [ecx + 0x618370]
and edx, 0x10
jne 0x5a68a0
mov dword [esp + 0x14], 0x1000
jmp 0x5a6d2a
cmp eax, 0x30
jne 0x5a68c3
mov dword [esp + 0x14], 0x200
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov dword [esp + 0x14], 0x400
jmp 0x5a6d2a
cmp eax, 0x30
jne 0x5a68f0
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov dword [esp + 0x14], 0x400
jmp 0x5a6d2a
movzx ebx, al
movzx ecx, byte [ebx + 0x618370]
and ecx, 0x10
jne 0x5a6920
mov dword [esp + 0x14], 0x800
jmp 0x5a6d2a
mov ebx, dword [esp + 0x20]
mov edx, ebx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x20], ecx
add ecx, ecx
mov dword [esp + 0x20], ecx
add eax, 0xffffffd0
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
cmp eax, 0x7fff
jle 0x5a6952
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov edx, dword [esp + 0x24]
mov edi, edx
sub edi, 1
je 0x5a69c0
sub edi, 1
je 0x5a6a10
sub edi, 2
je 0x5a6a40
sub edi, 4
je 0x5a6b26
sub edi, 8
je 0x5a6be6
sub edi, 0x10
je 0x5a6c30
sub edi, 0x20
je 0x5a6c76
sub edi, 0xc0
je 0x5a6cc0
jmp 0x5a6d2a
mov eax, dword [esp + 0x18]
mov byte [eax], 0
mov byte [eax + 1], 0
mov byte [eax + 2], 0
mov byte [eax + 3], 0
mov byte [eax + 4], 0
mov byte [eax + 5], 0
mov byte [eax + 6], 0
mov byte [eax + 7], 0
mov dword [esp + 0x28], 2
mov dword [esp + 0x24], 2
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
cmp eax, 0x30
jne 0x5a6a30
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov dword [esp + 0x24], 4
jmp 0x5a6d2a
movzx ebx, al
movzx ecx, byte [ebx + 0x618370]
and ecx, 0x20
jne 0x5a6a80
cmp eax, dword [esp + 0x34]
jne 0x5a6a73
mov dword [esp + 0x24], 8
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov dword [esp + 0x24], 0x10
jmp 0x5a6d2a
cmp dword [esp + 0x28], 0x11
jge 0x5a6b10
inc dword [esp + 0x38]
mov esi, dword [esp + 0x28]
cmp esi, 0x80000000
sbb esi, 0xffffffff
sar esi, 1
mov edx, dword [esp + 0x18]
mov cl, byte [edx + esi]
mov byte [esp + 8], cl
cmp eax, 0xffffffff
jne 0x5a6ab3
or eax, 0xffffffff
jmp 0x5a6aba
movzx eax, byte [ebx + 0x618570]
mov ecx, eax
cmp eax, 0x41
jl 0x5a6ac6
add ecx, 0xffffffc9
jmp 0x5a6ac9
sub ecx, 0x30
mov eax, dword [esp + 0x28]
cdq
and eax, 1
xor eax, edx
sub eax, edx
test eax, eax
je 0x5a6ae0
or byte [esp + 8], cl
jmp 0x5a6aea
movzx eax, cl
shl eax, 4
or byte [esp + 8], al
mov cl, byte [esp + 8]
mov eax, dword [esp + 0x18]
mov byte [eax + esi], cl
inc dword [esp + 0x28]
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
movzx ebx, al
movzx edx, byte [ebx + 0x618370]
and edx, 0x20
jne 0x5a6b42
mov dword [esp + 0x24], 0x10
jmp 0x5a6d2a
cmp dword [esp + 0x28], 0x11
jge 0x5a6bd0
mov edi, dword [esp + 0x28]
cmp edi, 0x80000000
sbb edi, 0xffffffff
sar edi, 1
mov edx, dword [esp + 0x18]
mov cl, byte [edx + edi]
mov byte [esp + 0xc], cl
cmp eax, 0xffffffff
jne 0x5a6b71
or eax, 0xffffffff
jmp 0x5a6b78
movzx eax, byte [ebx + 0x618570]
mov ecx, eax
cmp eax, 0x41
jl 0x5a6b84
add ecx, 0xffffffc9
jmp 0x5a6b87
sub ecx, 0x30
mov eax, dword [esp + 0x28]
cdq
and eax, 1
xor eax, edx
sub eax, edx
test eax, eax
je 0x5a6ba0
or byte [esp + 0xc], cl
jmp 0x5a6baa
movzx eax, cl
shl eax, 4
or byte [esp + 0xc], al
mov cl, byte [esp + 0xc]
mov eax, dword [esp + 0x18]
mov byte [eax + edi], cl
inc dword [esp + 0x28]
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
cmp eax, 0xffffffff
jne 0x5a6bf0
or edx, 0xffffffff
jmp 0x5a6bfa
movzx edx, al
movzx edx, byte [edx + 0x618570]
cmp edx, 0x50
jne 0x5a6c21
mov dword [esp + 0x24], 0x20
inc dword [esp + 0x2c]
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov dword [esp + 0x14], 0x800
jmp 0x5a6d2a
inc dword [esp + 0x2c]
cmp eax, 0x2d
jne 0x5a6c43
mov dword [esp + 0x4c], 1
jmp 0x5a6c58
cmp eax, 0x2b
je 0x5a6c58
push 1
push eax
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
dec dword [esp + 0x2c]
mov dword [esp + 0x24], 0x40
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
movzx ecx, al
movzx ebx, byte [ecx + 0x618370]
and ebx, 0x10
jne 0x5a6c92
mov dword [esp + 0x14], 0x1000
jmp 0x5a6d2a
cmp eax, 0x30
jne 0x5a6cb6
inc dword [esp + 0x2c]
mov dword [esp + 0x24], 0x80
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
jmp 0x5a6d2a
mov dword [esp + 0x24], 0x100
jmp 0x5a6d2a
movzx edx, al
movzx ecx, byte [edx + 0x618370]
and ecx, 0x10
jne 0x5a6ce0
mov dword [esp + 0x14], 0x800
jmp 0x5a6d2a
mov ebx, dword [esp + 0x1c]
mov edx, ebx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x1c], ecx
add ecx, ecx
mov dword [esp + 0x1c], ecx
add eax, 0xffffffd0
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x20], 0x7fff
jle 0x5a6d15
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
inc dword [esp + 0x2c]
inc dword [esp + 0x10]
push 0
push 0
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [esp + 0x10]
cmp ecx, dword [ebp + 8]
jg 0x5a6d48
cmp eax, 0xffffffff
je 0x5a6d48
mov ebx, dword [esp + 0x14]
and ebx, 0x1800
je 0x5a62e7
and dword [esp + 0x14], 0xe2c
cmp dword [esp + 0x14], 0
jne 0x5a6d62
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0
jmp 0x5a6d79
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov edx, ecx
mov ecx, dword [ebp + 0x14]
mov dword [ecx], edx
push 1
push eax
push dword [ebp + 0x10]
call dword [ebp + 0xc]
fldz
add esp, 0xc
cmp dword [esp + 0x24], 0
jne 0x5a6ee5
cmp dword [esp + 0x44], 0
je 0x5a6da5
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
neg dword [esp + 0x20]
movzx ecx, byte [esp + 0x54]
mov eax, ecx
lea edi, [esp + 0x50]
add edi, ecx
add edi, 5
jmp 0x5a6dbb
inc dword [esp + 0x30]
sub eax, 1
jb 0x5a6dc6
dec edi
cmp byte [edi], 0x30
je 0x5a6db7
inc al
mov byte [esp + 0x54], al
cmp byte [esp + 0x54], 0
jne 0x5a6de3
mov dl, byte [esp + 0x54]
inc byte [esp + 0x54]
movzx eax, dl
mov byte [esp + eax + 0x55], 0x30
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x30]
mov dword [esp + 0x20], eax
cmp eax, 0xffff8000
jl 0x5a6dfd
cmp eax, 0x7fff
jle 0x5a6e06
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
je 0x5a6e46
cmp dword [esp + 0x44], 0
je 0x5a6e25
fstp st(0)
fld qword [0x619188]
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
cmp dword [esp + 0x40], 0
je 0x5a6e36
fld qword [0x61a7b0]
fchs
jmp 0x5a6e3c
fld qword [0x61a7b0]
fstp st(1)
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
mov ax, word [esp + 0x20]
mov word [esp + 0x52], ax
lea eax, [esp + 0x50]
push eax
fstp st(0)
call fcn.005c2120
pop ecx
fstp qword [esp + 0x78]
fld qword [0x619188]
fcomp qword [esp + 0x78]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5a6e94
fld qword [esp + 0x78]
fcomp qword [0x61a7c0]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5a6e94
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
jmp 0x5a6ec1
fld qword [esp + 0x78]
fcomp qword [0x61a7c8]
fnstsw ax
test ah, 0x45
jne 0x5a6ec1
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
mov esi, dword [0x61a7b0]
mov eax, dword [0x61a7b4]
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x40], 0
je 0x5a6ed9
cmp dword [esp + 0x14], 0
je 0x5a6ed9
fld qword [esp + 0x78]
fchs
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x78]
fld qword [esp + 0x78]
fcomp qword [0x619188]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5a7007
cmp dword [esp + 0x4c], 0
je 0x5a6f2c
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
neg dword [esp + 0x1c]
jmp 0x5a6f2c
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
mov eax, esi
shrd ebx, esi, 1
shr esi, 1
mov dword [ecx], ebx
mov dword [ecx + 4], esi
inc dword [esp + 0x1c]
lea edx, [esp + 0x78]
movsx eax, word [edx]
and eax, 0xf0
cmp eax, 0x10
jne 0x5a6f16
dec dword [esp + 0x38]
shl dword [esp + 0x38], 2
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x78]
and word [eax], 0xf
movsx edi, word [esp + 0x1c]
add edi, 0x3ff
shl edi, 4
lea eax, [esp + 0x78]
or word [eax], di
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x48]
add ebx, dword [esp + 0x28]
inc ebx
add ebx, dword [esp + 0x2c]
mov eax, dword [ebp + 0x14]
mov dword [eax], ebx
fld qword [0x619188]
fcomp qword [esp + 0x78]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5a6fc8
fld qword [esp + 0x78]
fcomp qword [0x61a7c0]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5a6fc8
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
jmp 0x5a6ff5
fld qword [esp + 0x78]
fcomp qword [0x61a7c8]
fnstsw ax
test ah, 0x45
jne 0x5a6ff5
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
mov edx, dword [0x61a7b0]
mov eax, dword [0x61a7b4]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x40], 0
je 0x5a7017
lea eax, [esp + 0x78]
or word [eax], 0x8000
jmp 0x5a7017
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
fstp st(0)
fld qword [esp + 0x78]
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret