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

Disassembly:
push ebp
push edi
push esi
mov esi, ecx
push ebx
sub esp, 0x6c
fld dword [ecx + 0x58]
mov eax, dword [ecx]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fldz
fcompi st(1)
fstp st(0)
jae 0x531920
cmp byte [ecx + 0x3b], 0xd
je 0x531920
cmp byte [ecx + 9], 8
je 0x531920
movsx edx, byte [ecx + 0x22]
imul edx, edx, 0x84
add edx, dword [0x5b6a8c]
cmp byte [edx - 0x4f], 0
jle 0x5319c0
movzx ebx, word [ecx + 0x1a]
movzx edi, word [ecx + 0x1c]
mov dword [esp], 0
call dword [eax + 0x78]
sar bx, 5
sub esp, 4
sar di, 5
mov edx, dword [esp + 0x80]
movsx ebx, bx
movsx edi, di
sub edx, ebx
mov eax, edx
neg eax
cmovs eax, edx
cmp eax, 1
jle 0x531998
mov eax, dword [0x59ad30]
mov edx, dword [0x5b39d0]
mov ecx, ebx
sub ecx, dword [esp + 0x80]
sub edi, dword [esp + 0x84]
mov dword [esp + 0x3c], eax
imul eax, dword [esp + 0x84]
add eax, dword [esp + 0x80]
mov dword [esp + 0x38], edx
imul eax, eax, 0xe
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edi
movzx eax, byte [edx + eax + 0xc]
mov edx, ecx
neg edx
mov byte [esp + 0x2f], al
mov eax, edi
cmovs edx, ecx
neg eax
cmovs eax, edi
cmp edx, eax
cmovge eax, edx
mov dword [esp + 0x4c], eax
test eax, eax
je 0x531873
lea edx, [eax + 1]
mov dword [esp + 0x48], esi
mov ebp, 1
mov esi, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], 0
lea esi, [esi]
nop
mov eax, edi
mov ebx, dword [esp + 0x3c]
cdq
idiv esi
add eax, dword [esp + 0x84]
imul ebx, eax
mov eax, ecx
cdq
idiv esi
add eax, dword [esp + 0x80]
add ebx, eax
movzx eax, byte [esp + 0x2f]
imul ebx, ebx, 0xe
add ebx, dword [esp + 0x38]
cmp byte [ebx + 0xc], al
jne 0x531830
mov eax, dword [esp + 0x44]
test byte [ebx], 1
cmovne eax, ebp
mov dword [esp + 0x44], eax
add ebp, 1
add ecx, dword [esp + 0x30]
add edi, dword [esp + 0x34]
cmp ebp, dword [esp + 0x40]
jne 0x5317f0
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
test edi, edi
je 0x531873
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
imul eax, edi
cdq
idiv ecx
add dword [esp + 0x80], eax
mov eax, dword [esp + 0x34]
imul eax, edi
cdq
idiv ecx
add dword [esp + 0x84], eax
mov eax, dword [esp + 0x80]
mov ecx, esi
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x58], eax
movzx eax, byte [esp + 0x2f]
mov dword [esp + 8], eax
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x54]
mov dword [esp], eax
call fcn.005311a0
sub esp, 0xc
test eax, eax
je 0x53196d
mov eax, dword [esp + 0x54]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x84], eax
xor eax, eax
mov ecx, dword [esp + 0x88]
xor edx, edx
mov byte [esi + 0x42], 9
mov word [esi + 0x43], ax
movsx eax, word [esp + 0x80]
mov byte [esi + 0x3b], 9
mov word [esi + 0x45], ax
mov word [esi + 0x3e], ax
mov word [esi + 0x3c], dx
mov dword [ecx], eax
movsx eax, word [esp + 0x84]
mov word [esi + 0x47], ax
mov word [esi + 0x40], ax
mov esi, dword [esp + 0x8c]
mov dword [esi], eax
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov edi, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x1c], 0
mov ecx, esi
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp], edx
call dword [eax + 0x7c]
sub esp, 0x20
mov eax, dword [esp + 0x8c]
mov dword [eax], 0xffffffff
mov eax, dword [esp + 0x88]
mov dword [eax], 0xffffffff
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov edx, dword [esp + 0x84]
sub edx, edi
mov eax, edx
neg eax
cmovs eax, edx
cmp eax, 1
jg 0x53176c
jmp 0x5318c9
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 1
mov dword [esp], ecx
mov ecx, esi
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov dword [esp + 4], edi
call dword [eax + 0x7c]
sub esp, 0x20
jmp 0x53196d