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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2270
call fcn.005c3610
fldz
push ebx
fstp dword [esp + 0x1174]
push edi
push 0x84
lea eax, [esp + 0x1180]
push 0
push eax
call fcn.005c0060
push 0x1078
lea ecx, [esp + 0x1210]
push 0
push ecx
call fcn.005c0060
add esp, 0x18
cmp byte [esi + 0x2d4], 0
mov dword [esp + 0x68], 0x659dd0
jne 0x54ab1f
mov dword [esp + 0x68], 0x659d70
xor eax, eax
mov ecx, 0x440
lea edi, [esp + 0x78]
rep stosd dword es:[edi], eax
xor al, al
cmp byte [esi + 0x2d5], al
mov byte [esp + 0xf], al
jbe 0x54ac7e
mov edi, dword [esi + 0x2dc]
mov edx, dword [esi + 0x2e0]
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], edx
cmp al, byte [esi + 0x2d6]
mov ecx, dword [esp + 0x14]
mov dl, byte [ecx]
mov byte [esp + 0x10], dl
jae 0x54ab6b
mov cl, byte [edi]
add cl, 1
jmp 0x54ab6e
mov cl, byte [edi + 1]
mov dl, byte [edi]
cmp dl, cl
jae 0x54ac60
movzx ebx, byte [esi + 9]
mov bl, byte [ebx + esi + 0xa]
sub cl, dl
mov byte [esp + 0x12], bl
movzx ebx, dl
movzx ecx, cl
mov dword [esp + 0x18], ebx
mov dword [esp + 0x40], ecx
jmp 0x54aba0
mov bl, byte [esi + 0xa]
cmp bl, byte [esp + 0x12]
jae 0x54ac4d
movzx ecx, byte [esp + 0x10]
mov edi, dword [ebp + 8]
movzx eax, bl
mov edx, eax
shl edx, 4
add edx, eax
lea ecx, [ecx + edx*2]
mov edx, eax
shl edx, 6
add edx, dword [esp + 0x18]
shl eax, 5
add eax, dword [esp + 0x18]
lea edx, [edi + edx*8]
mov edi, dword [ebp + 0x10]
lea edi, [edi + eax*8]
movzx eax, byte [esi + 9]
mov al, byte [eax + esi + 0xa]
sub al, bl
movzx eax, al
mov dword [esp + 0x30], eax
mov al, byte [esp + 0xf]
lea ecx, [esp + ecx*4 + 0x78]
cmp al, byte [esi + 0x2d6]
jae 0x54ac07
fld dword [edi]
fstp dword [esp + 0x28]
fld dword [edi + 4]
jmp 0x54ac10
fld dword [edx]
fstp dword [esp + 0x28]
fld dword [edx + 4]
fstp dword [esp + 0x2c]
add edi, 0x100
fld dword [esp + 0x2c]
add edx, 0x200
fld dword [esp + 0x28]
add ecx, 0x88
sub dword [esp + 0x30], 1
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fadd dword [ecx - 0x88]
fstp dword [ecx - 0x88]
jne 0x54abf4
mov edi, dword [esp + 0x34]
mov ecx, 1
add dword [esp + 0x18], ecx
sub dword [esp + 0x40], ecx
jne 0x54aba0
add dword [esp + 0x14], 2
add al, 1
add edi, 1
cmp al, byte [esi + 0x2d5]
mov byte [esp + 0xf], al
mov dword [esp + 0x34], edi
jb 0x54ab52
fld1
xor al, al
cmp byte [esi + 0x2d7], al
mov byte [esp + 0x10], al
jbe 0x54ad98
fld qword [0x629730]
movzx ecx, byte [esi + 9]
mov bl, byte [esi + 0xa]
cmp bl, byte [ecx + esi + 0xa]
jae 0x54ad84
movzx ecx, al
fld dword [esi + ecx*4 + 0x4e74]
movzx eax, bl
fmul dword [esi + 0x4e6c]
mov edx, eax
shl edx, 4
add edx, eax
fstp dword [esp + 0x1c]
lea edx, [ecx + edx*2]
fld dword [esp + 0x1c]
add edx, edx
add edx, edx
fst dword [esi + ecx*4 + 0x4e74]
fld dword [esp + edx + 0x78]
fcompp
fnstsw ax
test ah, 0x41
jne 0x54acf1
fld dword [esp + edx + 0x78]
fstp dword [esi + ecx*4 + 0x4e74]
fld dword [esi + ecx*4 + 0x4e74]
fsub dword [esp + edx + 0x78]
fsub dword [esi + ecx*4 + 0x4f84]
fmul dword [esi + 0x4e70]
fadd dword [esi + ecx*4 + 0x4f84]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esi + ecx*4 + 0x4f84]
fld dword [esp + edx + 0x78]
fsub dword [esi + ecx*4 + 0x4efc]
fmul dword [esi + 0x4e70]
fadd dword [esi + ecx*4 + 0x4efc]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esi + ecx*4 + 0x4efc]
fxch st(1)
fmul st(2)
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x54ad62
fstp st(1)
fstp st(0)
fxch st(1)
fst dword [esp + edx + 0x1178]
jmp 0x54ad6d
fdivp st(1)
fstp dword [esp + edx + 0x1178]
fxch st(1)
movzx eax, byte [esi + 9]
fxch st(1)
add bl, 1
cmp bl, byte [eax + esi + 0xa]
jb 0x54acac
mov al, byte [esp + 0x10]
add al, 1
cmp al, byte [esi + 0x2d7]
mov byte [esp + 0x10], al
jb 0x54ac98
fstp st(0)
cmp byte [esi + 0x2d5], 0
mov byte [esp + 0xf], 0
jbe 0x54b2de
fld qword [0x65bda8]
mov al, byte [esp + 0xf]
cmp al, byte [esi + 0x2d6]
movzx eax, al
mov dword [esp + 0x1c], eax
jae 0x54add2
mov ecx, dword [esi + 0x2dc]
add eax, ecx
mov cl, byte [eax]
add cl, 1
jmp 0x54adde
mov edx, dword [esi + 0x2dc]
mov cl, byte [eax + edx + 1]
add eax, edx
mov al, byte [eax]
cmp al, cl
mov byte [esp + 0x12], cl
mov byte [esp + 0x11], al
jae 0x54b2c6
mov al, byte [esp + 0xf]
cmp al, byte [esi + 0x2d6]
jb 0x54ae31
mov al, byte [esi + 0x2d9]
mov cl, byte [esp + 0x11]
cmp cl, al
jbe 0x54ae31
sub al, cl
cmp al, 0xec
jg 0x54ae18
fldz
fstp dword [esp + 0x14]
jmp 0x54ae39
movsx ecx, al
mov dword [esp + 0x4c], ecx
fild dword [esp + 0x4c]
fmul st(1)
fadd qword [0x613d18]
fstp dword [esp + 0x14]
jmp 0x54ae39
fxch st(1)
fst dword [esp + 0x14]
fxch st(1)
fld dword [esp + 0x14]
xor eax, eax
mov ecx, 3
fld dword [eax + 0x65bc38]
add eax, 4
sub ecx, 1
fmul st(1)
fstp dword [esp + eax + 0x68]
jne 0x54ae44
mov dl, byte [esi + 0x2e4]
fstp st(0)
mov ax, word [esi + 0x2e5]
mov cl, byte [esi + 0x2e7]
mov byte [esp + 0x10], dl
movzx edx, byte [esi + 9]
mov word [esp + 0x18], ax
mov al, byte [esi + 0xa]
cmp al, byte [edx + esi + 0xa]
mov byte [esp + 0x1a], cl
mov byte [esp + 0x13], al
jae 0x54b2b2
movzx edi, byte [esp + 0x11]
fstp st(1)
movzx eax, byte [esp + 0x13]
mov dl, byte [esi + 0x2d6]
cmp byte [esp + 0xf], dl
mov dword [esp + 0x4c], eax
mov ecx, eax
jae 0x54aeb5
mov ebx, dword [ebp + 0x10]
shl ecx, 5
jmp 0x54aebb
mov ebx, dword [ebp + 8]
shl ecx, 6
add ecx, edi
fld dword [ebx + ecx*8]
lea ecx, [ebx + ecx*8]
fstp dword [esp + 0x28]
fld dword [ecx + 4]
mov cl, byte [esp + 0x11]
cmp cl, byte [esi + 0x2d8]
fstp dword [esp + 0x2c]
jbe 0x54af34
cmp byte [esp + 0xf], dl
jb 0x54af3a
movzx edx, byte [edi + esi + 0x32b]
shl edx, 6
lea ecx, [edx + edi]
fld dword [esi + ecx*8 + 0x36c]
fstp dword [esp + 0x20]
fld dword [esi + ecx*8 + 0x370]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fstp dword [esi + ecx*8 + 0x36c]
movzx ecx, byte [edi + esi + 0x32b]
fld dword [esp + 0x2c]
shl ecx, 6
add ecx, edi
fstp dword [esi + ecx*8 + 0x370]
fld dword [esp + 0x24]
fld dword [esp + 0x20]
jmp 0x54b1d0
cmp byte [esp + 0xf], dl
jae 0x54af82
movzx edx, byte [esp + 0x10]
shl edx, 5
lea eax, [edx + edi]
fld dword [esi + eax*8 + 0x1f6c]
fstp dword [esp + 0x44]
fld dword [esi + eax*8 + 0x1f70]
fstp dword [esp + 0x48]
fld dword [esp + 0x28]
fstp dword [esi + eax*8 + 0x1f6c]
fld dword [esp + 0x2c]
fstp dword [esi + eax*8 + 0x1f70]
mov eax, dword [esp + 0x68]
fld dword [eax + edi*8]
fstp dword [esp + 0x60]
fld dword [eax + edi*8 + 4]
jmp 0x54afca
movzx eax, byte [esp + 0x10]
shl eax, 6
add eax, edi
fld dword [esi + eax*8 + 0x36c]
fstp dword [esp + 0x44]
fld dword [esi + eax*8 + 0x370]
fstp dword [esp + 0x48]
fld dword [esp + 0x28]
fstp dword [esi + eax*8 + 0x36c]
fld dword [esp + 0x2c]
fstp dword [esi + eax*8 + 0x370]
fld dword [edi*8 + str.CrQ_]
fstp dword [esp + 0x60]
fld dword [edi*8 + 0x659b74]
fstp dword [esp + 0x64]
lea ecx, [esp + 0x6c]
fld dword [esp + 0x64]
mov dword [esp + 0x30], ecx
fld st(0)
lea ecx, [edi + edi*2]
fld dword [esp + 0x48]
add ecx, ecx
fld st(0)
lea eax, [esp + 0x18]
fmulp st(2)
add ecx, ecx
fld dword [esp + 0x60]
mov dword [esp + 0x14], 0
fld st(0)
mov dword [esp + 0x34], eax
fld dword [esp + 0x44]
add ecx, ecx
fld st(0)
mov dword [esp + 0x40], 3
fmulp st(2)
fxch st(4)
faddp st(1)
fstp dword [esp + 0x20]
fmulp st(1)
fxch st(2)
fmulp st(1)
fsubp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x20]
fstp dword [esp + 0x38]
fld dword [esp + 0x24]
fstp dword [esp + 0x3c]
jmp 0x54b044
fstp st(0)
fstp st(0)
mov bl, byte [esi + 0x2d6]
cmp byte [esp + 0xf], bl
jae 0x54b0a3
movzx edx, byte [eax]
mov eax, dword [esp + 0x14]
add eax, edx
mov edx, eax
shl edx, 5
add edx, edi
cmp byte [esi + 0x2d4], 0
fld dword [esi + edx*8 + 0x3f6c]
fstp dword [esp + 0x44]
fld dword [esi + edx*8 + 0x3f70]
fstp dword [esp + 0x48]
je 0x54b091
fld dword [ecx + 0x65a5f0]
fstp dword [esp + 0x50]
fld dword [ecx + 0x65a5f4]
jmp 0x54b0d9
fld dword [ecx + 0x65a4d0]
fstp dword [esp + 0x50]
fld dword [ecx + 0x65a4d4]
jmp 0x54b0d9
movzx eax, byte [eax]
mov edx, dword [esp + 0x14]
add eax, edx
mov edx, eax
shl edx, 6
add edx, edi
fld dword [esi + edx*8 + 0x216c]
fstp dword [esp + 0x44]
fld dword [esi + edx*8 + 0x2170]
fstp dword [esp + 0x48]
fld dword [ecx + 0x659ed0]
fstp dword [esp + 0x50]
fld dword [ecx + 0x659ed4]
cmp byte [esp + 0xf], bl
fstp dword [esp + 0x54]
fld dword [esp + 0x54]
mov edx, dword [esp + 0x30]
fld st(0)
fld dword [esp + 0x48]
fld st(0)
fmulp st(2)
fld dword [esp + 0x50]
fld st(0)
fld dword [esp + 0x44]
fld st(0)
fmulp st(2)
fxch st(4)
faddp st(1)
fstp dword [esp + 0x20]
fmulp st(1)
fxch st(2)
fmulp st(1)
fsubp st(1)
fstp dword [esp + 0x24]
fld dword [edx]
fld dword [esp + 0x38]
fld st(0)
fmulp st(2)
fxch st(1)
fsubr dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [edx]
fld dword [esp + 0x3c]
fld st(0)
fmulp st(2)
fxch st(1)
fsubr dword [esp + 0x24]
fstp dword [esp + 0x24]
fld dword [edx]
fld dword [esp + 0x20]
fld st(0)
fmulp st(2)
fxch st(1)
faddp st(3)
fxch st(2)
fstp dword [esp + 0x58]
fld dword [edx]
fld dword [esp + 0x24]
fld st(0)
fmulp st(2)
fxch st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x5c]
fld dword [esp + 0x58]
jae 0x54b184
shl eax, 5
add eax, edi
fstp dword [esi + eax*8 + 0x3f6c]
fld dword [esp + 0x5c]
fstp dword [esi + eax*8 + 0x3f70]
jmp 0x54b19b
shl eax, 6
add eax, edi
fstp dword [esi + eax*8 + 0x216c]
fld dword [esp + 0x5c]
fstp dword [esi + eax*8 + 0x2170]
mov eax, dword [esp + 0x34]
fxch st(1)
add dword [esp + 0x30], 4
fst dword [esp + 0x38]
add dword [esp + 0x14], 5
fxch st(1)
add eax, 1
fst dword [esp + 0x3c]
add ecx, 8
sub dword [esp + 0x40], 1
mov dword [esp + 0x34], eax
jne 0x54b040
mov eax, dword [esp + 0x4c]
fxch st(1)
mov ecx, dword [esi + 0x2e0]
mov edx, dword [esp + 0x1c]
mov cl, byte [ecx + edx*2]
mov edx, eax
movzx ecx, cl
shl edx, 4
add edx, eax
lea ecx, [ecx + edx*2]
lea ecx, [esp + ecx*4 + 0x1178]
fmul dword [ecx]
fstp dword [esp + 0x38]
fmul dword [ecx]
mov cl, byte [esp + 0xf]
cmp cl, byte [esi + 0x2d6]
fstp dword [esp + 0x3c]
fld dword [esp + 0x38]
jae 0x54b215
mov edx, dword [ebp + 0x14]
shl eax, 5
jmp 0x54b21b
mov edx, dword [ebp + 0xc]
shl eax, 6
add eax, edi
lea eax, [edx + eax*8]
fstp dword [eax]
fld dword [esp + 0x3c]
fstp dword [eax + 4]
mov al, byte [esp + 0x10]
add al, 1
cmp al, 2
mov byte [esp + 0x10], al
jb 0x54b23c
mov byte [esp + 0x10], 0
mov al, byte [esp + 0x11]
cmp al, byte [esi + 0x2d8]
jbe 0x54b270
cmp cl, byte [esi + 0x2d6]
jb 0x54b270
add byte [edi + esi + 0x32b], 1
mov al, byte [edi + esi + 0x32b]
cmp al, byte [edi + esi + 0x2eb]
jb 0x54b270
mov byte [edi + esi + 0x32b], 0
lea eax, [esp + 0x18]
lea ecx, [esi + 0x2e8]
mov ebx, 3
add byte [eax], 1
mov dl, byte [eax]
cmp dl, byte [ecx]
jb 0x54b28b
mov byte [eax], 0
add ecx, 1
add eax, 1
sub ebx, 1
jne 0x54b27f
mov al, byte [esp + 0x13]
movzx ecx, byte [esi + 9]
add al, 1
cmp al, byte [ecx + esi + 0xa]
mov byte [esp + 0x13], al
jb 0x54ae96
fld1
fxch st(1)
mov al, byte [esp + 0x11]
add al, 1
cmp al, byte [esp + 0x12]
mov byte [esp + 0x11], al
jb 0x54adf0
mov al, byte [esp + 0xf]
add al, 1
cmp al, byte [esi + 0x2d5]
mov byte [esp + 0xf], al
jb 0x54adb0
fstp st(1)
mov dl, byte [esp + 0x10]
fstp st(0)
mov ax, word [esp + 0x18]
mov cl, byte [esp + 0x1a]
mov byte [esi + 0x2e4], dl
pop edi
mov word [esi + 0x2e5], ax
mov byte [esi + 0x2e7], cl
pop ebx
mov esp, ebp
pop ebp
ret