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

Disassembly:
sub esp, 0x13c
push ebx
push esi
mov ebx, ecx
push edi
lea eax, [ebx + 0x44]
push eax
lea ecx, [ebx + 0x38]
push ecx
lea edx, [ebx + 0x2c]
push edx
mov ecx, 0x2209408
call fcn.005426e0
mov ecx, dword [ebx + 0xf0]
test ecx, ecx
je 0x55c0e1
mov eax, dword [ebx + 0xf4]
sub eax, ecx
sar eax, 2
test eax, eax
je 0x55c0e1
mov eax, dword [ebx + 0x104]
cmp eax, 0xfa
jge 0x55c0f3
mov ecx, dword [ebx + 0x1dac8]
imul eax, eax, 0x12c
mov edx, dword [ebx + 0xf0]
mov edi, dword [edx + ecx*4]
add eax, 0x220f708
mov esi, eax
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x55c0b1
mov ecx, esi
call fcn.00559890
test edi, edi
jl 0x55c0c4
cmp edi, dword [esi + 8]
jge 0x55c0c4
mov eax, dword [esi + 0x1c]
mov edi, dword [eax + edi*4]
test edi, edi
jne 0x55c0d8
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0
push 0
push eax
call dword [ecx + 0x104]
jmp 0x55c0f3
mov ecx, edi
call fcn.0053dc20
jmp 0x55c0f3
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 0
push eax
call dword [edx + 0x104]
mov edx, dword [ebx + 0xc8]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
shl edx, 5
mov edx, dword [edx + 0x6ccc34]
push edx
push 0x13
push eax
call dword [ecx + 0xe4]
mov edx, dword [ebx + 0xcc]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
shl edx, 5
mov edx, dword [edx + 0x6ccc34]
push edx
push 0x14
push eax
call dword [ecx + 0xe4]
mov eax, dword [ebx + 0x1dac0]
test eax, eax
je 0x55caff
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 1
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 4
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 2
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 3
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 5
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 6
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0
push 0xe
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 0x89
push eax
call dword [edx + 0xe4]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 9
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0x142
push eax
call dword [edx + 0x164]
mov eax, dword [ebx + 0x1dabc]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [ebx + 0x1dac4], ecx
je 0x55ca9d
push ebp
mov eax, dword [ebx + 0xd8]
xor ebp, ebp
cmp eax, ebp
mov eax, dword [ebx + 0x1dac4]
lea ecx, [eax + 8]
je 0x55c293
mov eax, dword [ecx]
fld dword [eax + 0x68]
fadd dword [eax + 0x5c]
fstp dword [esp + 0x20]
fld dword [eax + 0x60]
fadd dword [eax + 0x6c]
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x24]
fld dword [eax + 0x64]
fadd dword [eax + 0x70]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
jmp 0x55c2ac
mov edx, dword [ecx]
add edx, 0x5c
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x18], eax
mov edx, dword [edx + 8]
mov dword [esp + 0x1c], edx
mov eax, dword [ecx]
fld dword [eax + 0x10]
mov ecx, dword [ebx + 0x1dac4]
fmul dword [0x6bc860]
mov dword [esp + 0x34], 0
fld st(0)
fchs
fst dword [esp + 0x2c]
fld st(1)
fstp dword [esp + 0x30]
mov esi, dword [ecx + 8]
fld dword [esi + 0x24]
add esi, 0x24
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c2f3
mov dword [esp + 0x10], 0xff
jmp 0x55c31f
fld dword [esi]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c308
mov dword [esp + 0x10], ebp
jmp 0x55c31f
fld dword [esi]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c336
mov ebp, 0xff
jmp 0x55c35c
fld dword [esi + 4]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jnp 0x55c35c
fld dword [esi + 4]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c373
mov edi, 0xff
jmp 0x55c39d
fld dword [esi + 8]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c387
xor edi, edi
jmp 0x55c39d
fld dword [esi + 8]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c3b4
mov eax, 0xff
jmp 0x55c3dc
fld dword [esi + 0xc]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c3c8
xor eax, eax
jmp 0x55c3dc
fld dword [esi + 0xc]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov edx, dword [esp + 0x10]
fld st(1)
shl eax, 8
fstp dword [esp + 0x44]
or eax, edx
fld st(1)
mov edx, dword [ebx + 0x1dac4]
fstp dword [esp + 0x48]
shl eax, 8
or eax, ebp
shl eax, 8
or eax, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], 0
mov esi, dword [edx + 8]
fld dword [esi + 0x24]
add esi, 0x24
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c42d
mov dword [esp + 0x10], 0xff
jmp 0x55c45d
fld dword [esi]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c446
mov dword [esp + 0x10], 0
jmp 0x55c45d
fld dword [esi]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c474
mov ebp, 0xff
jmp 0x55c49e
fld dword [esi + 4]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c488
xor ebp, ebp
jmp 0x55c49e
fld dword [esi + 4]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c4b5
mov edi, 0xff
jmp 0x55c4df
fld dword [esi + 8]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c4c9
xor edi, edi
jmp 0x55c4df
fld dword [esi + 8]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c4f6
mov eax, 0xff
jmp 0x55c51e
fld dword [esi + 0xc]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c50a
xor eax, eax
jmp 0x55c51e
fld dword [esi + 0xc]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov edx, dword [esp + 0x10]
fst dword [esp + 0x5c]
shl eax, 8
fst dword [esp + 0x60]
or eax, edx
shl eax, 8
or eax, ebp
shl eax, 8
or eax, edi
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x1dac4]
mov dword [esp + 0x64], 0
mov esi, dword [eax + 8]
fld dword [esi + 0x24]
add esi, 0x24
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c56b
mov dword [esp + 0x10], 0xff
jmp 0x55c59b
fld dword [esi]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c584
mov dword [esp + 0x10], 0
jmp 0x55c59b
fld dword [esi]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c5b2
mov ebp, 0xff
jmp 0x55c5dc
fld dword [esi + 4]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c5c6
xor ebp, ebp
jmp 0x55c5dc
fld dword [esi + 4]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c5f3
mov edi, 0xff
jmp 0x55c61d
fld dword [esi + 8]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c607
xor edi, edi
jmp 0x55c61d
fld dword [esi + 8]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c634
mov eax, 0xff
jmp 0x55c65c
fld dword [esi + 0xc]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c648
xor eax, eax
jmp 0x55c65c
fld dword [esi + 0xc]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov edx, dword [esp + 0x10]
fxch st(1)
mov ecx, dword [ebx + 0x1dac4]
fstp dword [esp + 0x74]
shl eax, 8
or eax, edx
fstp dword [esp + 0x78]
shl eax, 8
or eax, ebp
shl eax, 8
or eax, edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x7c], 0
mov esi, dword [ecx + 8]
fld dword [esi + 0x24]
add esi, 0x24
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c6ab
mov dword [esp + 0x10], 0xff
jmp 0x55c6db
fld dword [esi]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c6c4
mov dword [esp + 0x10], 0
jmp 0x55c6db
fld dword [esi]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c6f2
mov ebp, 0xff
jmp 0x55c71c
fld dword [esi + 4]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c706
xor ebp, ebp
jmp 0x55c71c
fld dword [esi + 4]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c733
mov edi, 0xff
jmp 0x55c75d
fld dword [esi + 8]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c747
xor edi, edi
jmp 0x55c75d
fld dword [esi + 8]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x55c774
mov eax, 0xff
jmp 0x55c79c
fld dword [esi + 0xc]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x55c788
xor eax, eax
jmp 0x55c79c
fld dword [esi + 0xc]
fmul dword [0x6bc8c4]
fadd dword [0x6bc860]
call fcn.005cd414
mov edx, dword [esp + 0x10]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ebp
shl eax, 8
or eax, edi
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x164]
test eax, eax
je 0x55c80d
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 2
push 1
push 0
push eax
call dword [edx + 0x114]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 2
push 0
push eax
call dword [ecx + 0x114]
mov dword [esp + 0x3c], 0xbf800000
mov dword [esp + 0x6c], 0xbf800000
mov dword [esp + 0x70], 0x40000000
mov dword [esp + 0x88], 0x40000000
jmp 0x55c830
mov dword [esp + 0x3c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0x3f800000
mov dword [esp + 0x88], 0x3f800000
mov eax, dword [ebx + 0x128]
test eax, eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], 0x3f800000
mov dword [esp + 0x58], 0
mov dword [esp + 0x84], 0x3f800000
je 0x55c93b
mov edx, dword [ebx + 0x1dac4]
mov eax, dword [edx + 8]
fld dword [eax + 0x18]
mov eax, dword [ebx + 0x130]
dec eax
je 0x55c8fe
dec eax
je 0x55c8c1
dec eax
jne 0x55c939
fld st(0)
lea eax, [esp + 0x2c]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
fld dword [esp + 0x10]
add eax, 0x18
dec ecx
fmul dword [eax - 0x18]
fld st(1)
fmul dword [eax - 0x14]
faddp st(1)
fld dword [esp + 0x10]
fmul dword [eax - 0x14]
fld st(2)
fmul dword [eax - 0x18]
fsubp st(1)
fstp dword [eax - 0x14]
fstp dword [eax - 0x18]
jne 0x55c897
jmp 0x55c939
fld st(0)
lea eax, [esp + 0x34]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
fld dword [esp + 0x10]
add eax, 0x18
dec ecx
fmul dword [eax - 0x18]
fld st(1)
fmul dword [eax - 0x20]
faddp st(1)
fld dword [esp + 0x10]
fmul dword [eax - 0x20]
fld st(2)
fmul dword [eax - 0x18]
fsubp st(1)
fstp dword [eax - 0x20]
fstp dword [eax - 0x18]
jne 0x55c8d4
jmp 0x55c939
fld st(0)
lea eax, [esp + 0x30]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
fld dword [esp + 0x10]
add eax, 0x18
dec ecx
fmul dword [eax - 0x18]
fld st(1)
fmul dword [eax - 0x14]
faddp st(1)
fld dword [esp + 0x10]
fmul dword [eax - 0x14]
fld st(2)
fmul dword [eax - 0x18]
fsubp st(1)
fstp dword [eax - 0x14]
fstp dword [eax - 0x18]
jne 0x55c911
fstp st(0)
mov eax, dword [ebx + 0x108]
dec eax
lea edi, [esp + 0x8c]
mov ecx, 0x10
je 0x55c96b
dec eax
je 0x55c964
dec eax
je 0x55c95d
mov esi, 0x2209504
jmp 0x55c970
mov esi, 0x2209408
jmp 0x55c970
mov esi, 0x2209584
jmp 0x55c970
mov esi, 0x2209544
mov edx, dword [esp + 0x150]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x14]
push ecx
push edx
mov ecx, 0x2209408
call fcn.005417c0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
fld dword [0x6bb5fc]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc0], ecx
mov ecx, dword [ebx + 0x1dac4]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc4], edx
mov eax, dword [ecx + 8]
fld dword [eax + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x55ca4a
mov eax, dword [ebx + 0x168]
dec eax
je 0x55ca04
dec eax
je 0x55c9ee
dec eax
jne 0x55ca18
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x20]
push edx
lea eax, [esp + 0xd0]
push eax
call fcn.005e5918
jmp 0x55ca18
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x20]
push edx
lea eax, [esp + 0xd0]
push eax
call fcn.005e5875
jmp 0x55ca18
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x20]
push edx
lea eax, [esp + 0xd0]
push eax
call fcn.005e57d3
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0xd0]
push edx
lea eax, [esp + 0x114]
push eax
call fcn.005e4db8
mov ecx, 0x10
lea esi, [esp + 0x10c]
lea edi, [esp + 0x8c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
lea edx, [esp + 0x8c]
push edx
push 0x100
push eax
call dword [ecx + 0xb0]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0x18
lea edx, [esp + 0x30]
push edx
push 2
push 5
push eax
call dword [ecx + 0x14c]
mov eax, dword [ebx + 0x1dac4]
mov ecx, dword [eax]
mov dword [ebx + 0x1dac4], ecx
mov eax, dword [ebx + 0x1dabc]
mov edx, ecx
cmp edx, eax
jne 0x55c244
pop ebp
mov eax, dword [ebx + 0x164]
test eax, eax
je 0x55cacf
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 1
push 0
push eax
call dword [ecx + 0x114]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 2
push 0
push eax
call dword [edx + 0x114]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 9
push eax
call dword [ecx + 0xe4]
push 1
mov ecx, 0x2209408
call fcn.00541bb0
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 0xe
push eax
call dword [edx + 0xe4]
pop edi
pop esi
pop ebx
add esp, 0x13c
ret 4