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

Disassembly:
sub esp, 0x13c
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x1dac0]
test eax, eax
je 0x54afdc
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 1
push 1
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 1
push 4
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 2
push 2
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 0
push 3
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 2
push 5
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 0
push 6
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 0
push 0xe
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 0
push 0x89
push eax
call dword [edx + 0xe4]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 1
push 9
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f1c70]
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 0x54af7a
push ebp
push esi
push edi
lea esp, [esp]
mov eax, dword [ebx + 0xd8]
xor ebp, ebp
cmp eax, ebp
mov eax, dword [ebx + 0x1dac4]
lea ecx, [eax + 8]
je 0x54a76f
mov eax, dword [ecx]
fld dword [eax + 0x5c]
fadd dword [eax + 0x68]
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 0x54a788
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 [0x6a84d0]
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 [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54a7cf
mov dword [esp + 0x10], 0xff
jmp 0x54a7fb
fld dword [esi]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54a7e4
mov dword [esp + 0x10], ebp
jmp 0x54a7fb
fld dword [esi]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54a812
mov ebp, 0xff
jmp 0x54a838
fld dword [esi + 4]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jnp 0x54a838
fld dword [esi + 4]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54a84f
mov edi, 0xff
jmp 0x54a879
fld dword [esi + 8]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54a863
xor edi, edi
jmp 0x54a879
fld dword [esi + 8]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54a890
mov eax, 0xff
jmp 0x54a8b8
fld dword [esi + 0xc]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54a8a4
xor eax, eax
jmp 0x54a8b8
fld dword [esi + 0xc]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
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 [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54a909
mov dword [esp + 0x10], 0xff
jmp 0x54a939
fld dword [esi]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54a922
mov dword [esp + 0x10], 0
jmp 0x54a939
fld dword [esi]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54a950
mov ebp, 0xff
jmp 0x54a97a
fld dword [esi + 4]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54a964
xor ebp, ebp
jmp 0x54a97a
fld dword [esi + 4]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54a991
mov edi, 0xff
jmp 0x54a9bb
fld dword [esi + 8]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54a9a5
xor edi, edi
jmp 0x54a9bb
fld dword [esi + 8]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54a9d2
mov eax, 0xff
jmp 0x54a9fa
fld dword [esi + 0xc]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54a9e6
xor eax, eax
jmp 0x54a9fa
fld dword [esi + 0xc]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
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 [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54aa47
mov dword [esp + 0x10], 0xff
jmp 0x54aa77
fld dword [esi]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54aa60
mov dword [esp + 0x10], 0
jmp 0x54aa77
fld dword [esi]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54aa8e
mov ebp, 0xff
jmp 0x54aab8
fld dword [esi + 4]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54aaa2
xor ebp, ebp
jmp 0x54aab8
fld dword [esi + 4]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54aacf
mov edi, 0xff
jmp 0x54aaf9
fld dword [esi + 8]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54aae3
xor edi, edi
jmp 0x54aaf9
fld dword [esi + 8]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54ab10
mov eax, 0xff
jmp 0x54ab38
fld dword [esi + 0xc]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54ab24
xor eax, eax
jmp 0x54ab38
fld dword [esi + 0xc]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
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 [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54ab87
mov dword [esp + 0x10], 0xff
jmp 0x54abb7
fld dword [esi]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54aba0
mov dword [esp + 0x10], 0
jmp 0x54abb7
fld dword [esi]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54abce
mov ebp, 0xff
jmp 0x54abf8
fld dword [esi + 4]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54abe2
xor ebp, ebp
jmp 0x54abf8
fld dword [esi + 4]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54ac0f
mov edi, 0xff
jmp 0x54ac39
fld dword [esi + 8]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54ac23
xor edi, edi
jmp 0x54ac39
fld dword [esi + 8]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54ac50
mov eax, 0xff
jmp 0x54ac78
fld dword [esi + 0xc]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54ac64
xor eax, eax
jmp 0x54ac78
fld dword [esi + 0xc]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
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 0x54ace9
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 2
push 1
push 0
push eax
call dword [edx + 0x114]
mov eax, dword [0x21f1c70]
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 0x54ad0c
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 0x54ae1a
mov edx, dword [ebx + 0x1dac4]
mov eax, dword [edx + 8]
fld dword [eax + 0x18]
mov eax, dword [ebx + 0x130]
dec eax
je 0x54adda
dec eax
je 0x54ad9d
dec eax
jne 0x54ae18
fld st(0)
lea eax, [esp + 0x2c]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
fld st(0)
add eax, 0x18
dec ecx
fmul dword [eax - 0x14]
fld dword [esp + 0x10]
fmul dword [eax - 0x18]
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 0x54ad73
jmp 0x54ae18
fld st(0)
lea eax, [esp + 0x34]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
fld st(0)
add eax, 0x18
dec ecx
fmul dword [eax - 0x20]
fld dword [esp + 0x10]
fmul dword [eax - 0x18]
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 0x54adb0
jmp 0x54ae18
fld st(0)
lea eax, [esp + 0x30]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
lea ecx, [ecx]
fld st(0)
add eax, 0x18
dec ecx
fmul dword [eax - 0x14]
fld dword [esp + 0x10]
fmul dword [eax - 0x18]
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 0x54adf0
fstp st(0)
mov eax, dword [ebx + 0x108]
dec eax
lea edi, [esp + 0x8c]
mov ecx, 0x10
je 0x54ae4a
dec eax
je 0x54ae43
dec eax
je 0x54ae3c
mov esi, 0x21f1d74
jmp 0x54ae4f
mov esi, 0x21f1c78
jmp 0x54ae4f
mov esi, 0x21f1df4
jmp 0x54ae4f
mov esi, 0x21f1db4
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x14]
push ecx
push 0x21f1c78
mov ecx, 0x21f1c78
call fcn.00531110
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
fld dword [0x6a75fc]
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc4], ecx
mov ecx, dword [ebx + 0x1dac4]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xbc], edx
mov edx, dword [ecx + 8]
fld dword [edx + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x54af25
mov eax, dword [ebx + 0x168]
dec eax
je 0x54aedf
dec eax
je 0x54aec9
dec eax
jne 0x54aef3
mov eax, edx
mov ecx, dword [eax + 0x20]
push ecx
lea edx, [esp + 0xd0]
push edx
call fcn.005d1018
jmp 0x54aef3
mov eax, dword [ecx + 8]
mov ecx, dword [eax + 0x20]
push ecx
lea edx, [esp + 0xd0]
push edx
call fcn.005d0f75
jmp 0x54aef3
mov eax, dword [ecx + 8]
mov ecx, dword [eax + 0x20]
push ecx
lea edx, [esp + 0xd0]
push edx
call fcn.005d0ed3
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0xd0]
push ecx
lea edx, [esp + 0x114]
push edx
call fcn.005d04b8
mov ecx, 0x10
lea esi, [esp + 0x10c]
lea edi, [esp + 0x8c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
lea edx, [esp + 0x8c]
push edx
push pe_nt_image_headers32
push eax
call dword [ecx + 0xb0]
mov eax, dword [0x21f1c70]
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 0x54a720
pop edi
pop esi
pop ebp
mov eax, dword [ebx + 0x164]
test eax, eax
je 0x54afac
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 1
push 1
push 0
push eax
call dword [ecx + 0x114]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 1
push 2
push 0
push eax
call dword [edx + 0x114]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 2
push 9
push eax
call dword [ecx + 0xe4]
push 1
mov ecx, 0x21f1c78
call fcn.00531690
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 1
push 0xe
push eax
call dword [edx + 0xe4]
pop ebx
add esp, 0x13c
ret