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

Disassembly:
sub esp, 0xac
push esi
mov esi, ecx
cmp byte [esi + 0x48], 0
je 0x56088e
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x56088e
call fcn.00580090
mov dword [esp + 0x24], eax
test eax, eax
je 0x56088e
fld dword [esi + 0x3c]
fstp dword [esp + 0x10]
fld dword [esi + 0x40]
fadd qword [0x674248]
fstp dword [esp + 0x3c]
call fcn.005622d0
mov dword [esp + 0x2c], eax
cmp eax, 0x4e8
movzx eax, byte [esi + 0x10]
jne 0x55fbfb
sub eax, 1
je 0x55fbe9
sub eax, 1
jne 0x55fc33
mov ax, word [esi + 0xc]
fld dword [esp + 0x10]
shr ax, 1
movzx ecx, ax
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
jmp 0x55fc2d
movzx edx, word [esi + 0xc]
fld dword [esp + 0x10]
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
jmp 0x55fc2d
sub eax, 2
je 0x55fc17
sub eax, 1
jne 0x55fc33
movzx eax, word [esi + 0xc]
fld dword [esp + 0x10]
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
jmp 0x55fc2d
mov cx, word [esi + 0xc]
fld dword [esp + 0x10]
shr cx, 1
movzx edx, cx
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fsubp st(1)
fstp dword [esp + 0x10]
mov al, byte [esi + 0x11]
cmp al, 0x20
je 0x55fc50
cmp al, 0x30
jne 0x55fc6c
movzx eax, word [esi + 0xe]
fld dword [esp + 0x3c]
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
jmp 0x55fc66
movzx ecx, word [esi + 0xe]
fld dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
fmul qword [0x674618]
fsubp st(1)
fstp dword [esp + 0x3c]
mov ecx, dword [0x70b5c0]
push ebx
push ebp
push edi
push 5
push 0x13
call fcn.00554b70
mov ecx, dword [0x70b5c0]
push 6
push 0x14
call fcn.00554b70
mov ecx, dword [0x70b5c0]
push 0x1c
call fcn.00554420
mov ecx, dword [0x70b5c0]
push 0x89
mov dword [esp + 0xbc], eax
call fcn.00554420
mov ecx, dword [0x70b5c0]
push 0
push 0x1c
mov dword [esp + 0xb4], eax
call fcn.00554430
mov ecx, dword [0x70b5c0]
push 0
push 0x89
call fcn.00554430
mov ecx, dword [0x70b5c0]
push 0x142
call fcn.00554500
mov ecx, dword [0x70b5c0]
push 2
push 2
push 0
call fcn.005544b0
mov ecx, dword [0x70b5c0]
push 0
push 3
push 0
call fcn.005544b0
mov ecx, dword [0x70b5c0]
push 4
push 1
push 0
call fcn.005544b0
mov ecx, dword [0x70b5c0]
push 2
push 5
push 0
call fcn.005544b0
mov ecx, dword [0x70b5c0]
push 0
push 6
push 0
call fcn.005544b0
mov ecx, dword [0x70b5c0]
push 4
push 4
push 0
call fcn.005544b0
fld dword [esi + 0x44]
cmp byte [esi + 0x1b], 0
fstp dword [esp + 0x54]
fld dword [esi + 0x44]
fstp dword [esp + 0x6c]
fld dword [esi + 0x44]
fstp dword [esp + 0x84]
fld dword [esi + 0x44]
fstp dword [esp + 0x9c]
je 0x560150
fld dword [esp + 0x1c]
lea edx, [esp + 0x24]
fstp dword [esp + 0x10]
lea ecx, [esi + 0x50]
fld dword [esp + 0x48]
push edx
fstp dword [esp + 0x24]
call fcn.00516480
mov ebp, dword [eax]
mov ebx, dword [eax + 4]
mov edi, dword [esi + 0x60]
mov dword [esp + 0xb4], ebx
cmp dword [esi + 0x5c], edi
jbe 0x55fdb1
call fcn.006121a6
mov eax, dword [esi + 0x50]
test ebp, ebp
je 0x55fdbc
cmp ebp, eax
je 0x55fdc1
call fcn.006121a6
cmp ebx, edi
je 0x560150
test ebp, ebp
jne 0x55fe78
call fcn.006121a6
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x55fde2
call fcn.006121a6
mov edi, dword [ebx]
movsx eax, word [edi + 2]
movsx ecx, word [edi + 4]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov dword [esp + 0x18], ecx
fstp dword [esp + 0x3c]
fild dword [esp + 0x18]
fstp dword [esp + 0x34]
fld dword [edi + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x3c]
fld st(0)
fld dword [esp + 0x10]
fld st(0)
faddp st(2)
fld dword [esi + 0x3c]
fsubp st(2)
fld dword [esi + 0x14]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x55fe52
cmp byte [esi + 0x1a], 0
fstp st(0)
je 0x56014e
fld dword [esp + 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x20]
fadd qword [0x674288]
fstp dword [esp + 0x20]
fld dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x55fe80
fld dword [esp + 0x20]
fild dword [eax + 4]
fcompp
fnstsw ax
test ah, 1
jne 0x55fe80
fstp st(1)
fadd dword [esp + 0x18]
jmp 0x560128
mov eax, dword [ebp]
jmp 0x55fdd8
fld qword [0x674618]
movsx edx, word [edi]
fsub st(1), st(0)
mov ecx, dword [esp + 0x30]
fxch st(1)
push edx
fstp dword [esp + 0x44]
fsubr dword [esp + 0x24]
fstp dword [esp + 0x48]
fadd dword [esp + 0x44]
fstp dword [esp + 0x40]
fld dword [esp + 0x48]
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
call fcn.0057eb80
mov ecx, dword [esp + 0x30]
mov ebx, dword [0x70b5c0]
call fcn.0041eda0
push eax
push 0
mov ecx, ebx
call fcn.00554470
fld dword [edi + 8]
fstp dword [esp + 0x5c]
mov eax, dword [esi + 8]
fld dword [edi + 0xc]
push 4
fstp dword [esp + 0x64]
fld dword [edi + 8]
fstp dword [esp + 0x78]
fld dword [edi + 0x14]
fstp dword [esp + 0x7c]
fld dword [edi + 0x10]
fstp dword [esp + 0x90]
fld dword [edi + 0xc]
fstp dword [esp + 0x94]
fld dword [edi + 0x10]
fstp dword [esp + 0xa8]
fld dword [edi + 0x14]
mov dword [esp + 0x5c], eax
fstp dword [esp + 0xac]
mov dword [esp + 0x74], eax
fld dword [esp + 0x48]
mov dword [esp + 0x8c], eax
fldz
mov dword [esp + 0xa4], eax
fsub st(1), st(0)
lea eax, [esp + 0x50]
fxch st(1)
push eax
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x58]
fld dword [esp + 0x3c]
fadd st(2)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x70]
fstp dword [esp + 0xa0]
fstp dword [esp + 0x88]
fld dword [esp + 0x48]
fld1
fsub st(1), st(0)
fxch st(1)
fsub st(2)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x54]
fstp dword [esp + 0x6c]
fsubr dword [esp + 0x44]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x84]
fstp dword [esp + 0x9c]
call fcn.00559bd0
add esp, 8
test al, al
je 0x55ffbf
mov ecx, dword [0x70b5c0]
push 2
push 0
push 5
call fcn.005546e0
fld dword [esp + 0x40]
lea ecx, [esp + 0x4c]
fld1
push 4
fadd st(1), st(0)
push ecx
fldz
fsub st(2), st(0)
fxch st(2)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x54]
fstp dword [esp + 0x6c]
fadd dword [esp + 0x44]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x84]
fstp dword [esp + 0x9c]
call fcn.00559bd0
add esp, 8
test al, al
je 0x56001d
mov ecx, dword [0x70b5c0]
push 2
push 0
push 5
call fcn.005546e0
fld dword [esp + 0x40]
lea edx, [esp + 0x4c]
fldz
push 4
fsub st(1), st(0)
push edx
fxch st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x54]
fstp dword [esp + 0x6c]
fld dword [esp + 0x44]
fadd st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x84]
fstp dword [esp + 0x9c]
fld dword [esp + 0x4c]
fld1
fsub st(1), st(0)
fxch st(1)
fsub st(2)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x58]
fld dword [esp + 0x3c]
fsubrp st(2)
fxch st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x70]
fstp dword [esp + 0xa0]
fstp dword [esp + 0x88]
call fcn.00559bd0
add esp, 8
test al, al
je 0x5600b5
mov ecx, dword [0x70b5c0]
push 2
push 0
push 5
call fcn.005546e0
fld dword [esp + 0x44]
lea eax, [esp + 0x4c]
fld1
push 4
fadd st(1), st(0)
push eax
fldz
fsub st(2), st(0)
fxch st(2)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x58]
fld dword [esp + 0x3c]
faddp st(2)
fxch st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x70]
fstp dword [esp + 0xa0]
fstp dword [esp + 0x88]
call fcn.00559bd0
add esp, 8
test al, al
je 0x560119
mov ecx, dword [0x70b5c0]
push 2
push 0
push 5
call fcn.005546e0
fld dword [esp + 0x18]
mov ebx, dword [esp + 0xb4]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
test ebp, ebp
jne 0x560149
call fcn.006121a6
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x560141
call fcn.006121a6
add ebx, 4
jmp 0x55fd9d
mov eax, dword [ebp]
jmp 0x560137
fstp st(0)
mov ecx, dword [esi + 0x60]
fld dword [esp + 0x1c]
sub ecx, dword [esi + 0x5c]
fstp dword [esp + 0x10]
fld dword [esp + 0x48]
xor ebx, ebx
sar ecx, 2
fstp dword [esp + 0x20]
test ecx, ecx
jbe 0x560398
mov ebp, dword [esp + 0xc0]
lea ebx, [ebx]
mov edx, dword [esi + 0x60]
sub edx, dword [esi + 0x5c]
sar edx, 2
cmp ebx, edx
jb 0x560192
call fcn.006121a6
mov eax, dword [esi + 0x5c]
mov edi, dword [eax + ebx*4]
movsx ecx, word [edi + 2]
movsx edx, word [edi + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
fild dword [esp + 0x14]
fstp dword [esp + 0x3c]
fild dword [esp + 0x18]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fild dword [esp + 0x18]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x5601cf
fst dword [esp + 0x34]
jmp 0x5601df
movsx eax, word [edi + 4]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fstp dword [esp + 0x34]
fld dword [edi + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x3c]
fld st(0)
fld dword [esp + 0x10]
fld st(0)
faddp st(2)
fld dword [esi + 0x3c]
fsubp st(2)
fld dword [esi + 0x14]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x56022b
cmp byte [esi + 0x1a], 0
fstp st(0)
je 0x560394
fld dword [esp + 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x34]
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esp + 0x10]
test ebp, ebp
je 0x56024c
fld dword [esp + 0x20]
fild dword [ebp + 4]
fcompp
fnstsw ax
test ah, 1
jne 0x56024c
fstp st(1)
fstp st(1)
fadd dword [esp + 0x18]
jmp 0x56037c
fld qword [0x674618]
movsx ecx, word [edi]
fsub st(1), st(0)
push ecx
mov ecx, dword [esp + 0x34]
fxch st(1)
fstp dword [esp + 0x44]
fsubr dword [esp + 0x24]
fstp dword [esp + 0x48]
fadd dword [esp + 0x44]
fstp dword [esp + 0x40]
fadd dword [esp + 0x48]
fstp dword [esp + 0x38]
call fcn.0057eb80
mov ecx, dword [esp + 0x30]
mov ebp, dword [0x70b5c0]
call fcn.0041eda0
push eax
push 0
mov ecx, ebp
call fcn.00554470
fld dword [esp + 0x40]
fst dword [esp + 0x4c]
mov edx, dword [esi + 0x78]
fld dword [esp + 0x44]
sub edx, dword [esi + 0x74]
fst dword [esp + 0x50]
fld dword [edi + 8]
sar edx, 2
fstp dword [esp + 0x5c]
fld dword [edi + 0xc]
fstp dword [esp + 0x60]
fxch st(1)
fstp dword [esp + 0x64]
fld dword [esp + 0x34]
fst dword [esp + 0x68]
fld dword [edi + 8]
fstp dword [esp + 0x74]
fld dword [edi + 0x14]
fstp dword [esp + 0x78]
fld dword [esp + 0x3c]
fst dword [esp + 0x7c]
fxch st(2)
fstp dword [esp + 0x80]
fld dword [edi + 0x10]
fstp dword [esp + 0x8c]
fld dword [edi + 0xc]
fstp dword [esp + 0x90]
fxch st(1)
fstp dword [esp + 0x94]
fstp dword [esp + 0x98]
fld dword [edi + 0x10]
fstp dword [esp + 0xa4]
fld dword [edi + 0x14]
fstp dword [esp + 0xa8]
cmp ebx, edx
jb 0x56032d
call fcn.006121a6
mov eax, dword [esi + 0x74]
mov eax, dword [eax + ebx*4]
lea ecx, [esp + 0x4c]
push 4
push ecx
mov dword [esp + 0xa8], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x60], eax
call fcn.00559bd0
add esp, 8
test al, al
je 0x56036d
mov ecx, dword [0x70b5c0]
push 2
push 0
push 5
call fcn.005546e0
fld dword [esp + 0x18]
mov ebp, dword [esp + 0xc0]
fadd dword [esp + 0x10]
mov edx, dword [esi + 0x60]
fstp dword [esp + 0x10]
sub edx, dword [esi + 0x5c]
inc ebx
sar edx, 2
cmp ebx, edx
jb 0x560180
jmp 0x560398
fstp st(0)
fstp st(0)
cmp byte [esi + 0x18], 0
je 0x560720
call fcn.0056ac40
mov ebx, eax
call fcn.0056aaf0
mov ebp, eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x24]
push ecx
push ebx
mov ecx, esi
add ebp, ebx
call fcn.0055ed20
fld dword [esp + 0x20]
cmp ebx, ebp
jge 0x5603eb
lea edx, [esp + 0x10]
fstp st(0)
push edx
lea eax, [esp + 0x20]
push eax
push ebp
mov ecx, esi
mov edi, 0x7fffffff
call fcn.0055ed20
fld dword [esp + 0x20]
jmp 0x5603fa
fld qword [0x674698]
or edi, 0xffffffff
fadd st(1)
fstp dword [esp + 0x1c]
cmp dword [esp + 0x38], 0x4e8
jne 0x56043e
movzx ecx, word [esi + 0xc]
fld dword [esi + 0x3c]
movzx edx, word [esi + 0xe]
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
mov dword [esp + 0x38], edx
fsubp st(1)
fadd st(1), st(0)
fxch st(1)
fstp dword [esp + 0x20]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x10]
fadd dword [esi + 0x40]
fstp dword [esp + 0x10]
fild dword [esp + 0x38]
jmp 0x560467
fadd dword [esi + 0x3c]
movzx eax, word [esi + 0xe]
mov dword [esp + 0x38], eax
fstp dword [esp + 0x20]
fld dword [esp + 0x10]
fadd dword [esi + 0x40]
fstp dword [esp + 0x10]
fld dword [esi + 0x3c]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0x38]
fld dword [esp + 0x10]
mov al, byte [esi + 0x11]
fld st(0)
fadd st(2)
fstp dword [esp + 0x30]
cmp al, 0x20
je 0x56048a
cmp al, 0x30
jne 0x56049e
fsubrp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
jmp 0x5604a0
fxch st(1)
fmul qword [0x674618]
fsubp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
jmp 0x5604a0
fstp st(1)
fld dword [esp + 0x20]
push 0
fst dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
fxch st(1)
mov dword [esp + 0x50], ecx
fst dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
fldz
mov dword [esp + 0x54], edx
fst dword [esp + 0x30]
push 0
fld dword [esp + 0x24]
mov eax, dword [esp + 0x34]
fst dword [esp + 0x2c]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x2c]
fxch st(2)
fstp dword [esp + 0x30]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x70], edx
fst dword [esp + 0x34]
mov eax, dword [esp + 0x34]
fxch st(2)
mov dword [esp + 0x74], eax
fstp dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
fld dword [esp + 0x38]
mov dword [esp + 0x84], ecx
fst dword [esp + 0x30]
mov edx, dword [esp + 0x30]
fxch st(2)
mov dword [esp + 0x88], edx
fst dword [esp + 0x34]
mov eax, dword [esp + 0x34]
fxch st(1)
mov dword [esp + 0x8c], eax
fstp dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
fxch st(1)
mov dword [esp + 0x9c], ecx
mov ecx, dword [0x70b5c0]
fstp dword [esp + 0x30]
mov edx, dword [esp + 0x30]
fstp dword [esp + 0x34]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x60], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x90], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], eax
call fcn.00554470
push 5
call fcn.00559950
lea ecx, [esp + 0x50]
push 4
push ecx
call fcn.00559bd0
add esp, 0xc
test al, al
je 0x5605b0
mov ecx, dword [0x70b5c0]
push 2
push 0
push 4
push 0
push 4
call fcn.00554750
call fcn.0056ab00
mov edi, eax
call fcn.0056ab10
mov ebp, eax
cmp edi, ebp
jge 0x560720
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x24]
push eax
add edi, ebx
push edi
mov ecx, esi
call fcn.0055ed20
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x20]
push edx
add ebp, ebx
push ebp
mov ecx, esi
call fcn.0055ed20
fld dword [esi + 0x3c]
fadd dword [esp + 0x20]
movzx eax, word [esi + 0xe]
mov dword [esp + 0x38], eax
mov eax, 0xffff0000
fstp dword [esp + 0x20]
mov dword [esp + 0x58], eax
fild dword [esp + 0x38]
mov dword [esp + 0x70], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0xa0], eax
fadd dword [esi + 0x40]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esi + 0x3c]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x10]
fld qword [0x674698]
fadd st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x20]
fst dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
fxch st(1)
mov dword [esp + 0x4c], ecx
fst dword [esp + 0x28]
mov edx, dword [esp + 0x28]
fldz
mov dword [esp + 0x50], edx
fst dword [esp + 0x2c]
fld dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
fst dword [esp + 0x24]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x24]
fxch st(2)
fstp dword [esp + 0x28]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x68], edx
fst dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
fxch st(2)
mov dword [esp + 0x6c], eax
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
fld dword [esp + 0x30]
mov dword [esp + 0x7c], ecx
fst dword [esp + 0x28]
mov edx, dword [esp + 0x28]
fxch st(2)
mov dword [esp + 0x80], edx
fst dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
fxch st(1)
mov dword [esp + 0x84], eax
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
fxch st(1)
mov dword [esp + 0x94], ecx
fstp dword [esp + 0x28]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x98], edx
fstp dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
push 0x18
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [0x70b5c0]
push 0x65
push 0x68b524
push 2
push 4
push 0
push 4
mov dword [esp + 0xbc], eax
call fcn.00554780
mov ecx, dword [0x70b5c0]
push 0x13
call fcn.00554b90
mov ecx, dword [0x70b5c0]
push 0x14
call fcn.00554b90
mov edx, dword [esp + 0xb8]
mov ecx, dword [0x70b5c0]
push edx
push 0x1c
call fcn.00554430
mov eax, dword [esp + 0xac]
mov ecx, dword [0x70b5c0]
push eax
push 0x89
call fcn.00554430
mov ecx, dword [esi + 0x90]
sub ecx, dword [esi + 0x8c]
lea ebp, [esi + 0x80]
mov dword [esp + 0xac], ebp
test ecx, 0xffffffe0
je 0x56088b
fild dword [0x746d1c]
fsub dword [esi + 0x3c]
call fcn.006117c0
fild dword [0x746d20]
mov ebx, eax
mov dword [esp + 0x30], ebx
fsub dword [esi + 0x40]
call fcn.006117c0
mov edi, eax
call fcn.005622d0
cmp eax, 0x4e8
jne 0x5607ca
movzx edx, word [esi + 0xe]
neg ebx
sub edx, edi
mov dword [esp + 0x30], ebx
mov edi, edx
test ebx, ebx
jl 0x56088b
test edi, edi
jl 0x56088b
movzx eax, word [esi + 0xc]
cmp ebx, eax
jge 0x56088b
movzx ecx, word [esi + 0xe]
cmp edi, ecx
jge 0x56088b
lea edx, [esp + 0xb0]
push edx
mov ecx, ebp
call fcn.00516480
mov edi, dword [esp + 0xb0]
mov ebp, dword [esp + 0xb4]
nop
mov ebx, dword [esp + 0xac]
mov esi, dword [ebx + 0x10]
cmp dword [ebx + 0xc], esi
jbe 0x560824
call fcn.006121a6
mov eax, dword [ebx]
test edi, edi
je 0x56082e
cmp edi, eax
je 0x560833
call fcn.006121a6
cmp ebp, esi
je 0x56088b
mov esi, edi
mov ebx, ebp
test edi, edi
jne 0x560898
call fcn.006121a6
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x560850
call fcn.006121a6
add ebp, 0x20
test esi, esi
jne 0x56089c
call fcn.006121a6
cmp ebx, dword [esi + 0x10]
jb 0x560866
call fcn.006121a6
movsx eax, word [ebx]
cmp dword [esp + 0x30], eax
jl 0x560810
movsx ecx, word [ebx + 2]
cmp dword [esp + 0x30], ecx
jge 0x560810
push 0xffffffffffffffff
push 0
add ebx, 4
push ebx
mov ecx, 0x6e4778
call fcn.0055f5f0
pop edi
pop ebp
pop ebx
pop esi
add esp, 0xac
ret 4
mov eax, dword [edi]
jmp 0x560846
mov esi, dword [esi]
jmp 0x56085c