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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x675933
mov eax, dword fs:[0]
push eax
sub esp, 0x4c8
mov eax, dword [0x6d35d0]
xor eax, esp
mov dword [esp + 0x4c0], eax
push ebx
push esi
push edi
mov eax, dword [0x6d35d0]
xor eax, esp
push eax
lea eax, [esp + 0x4d8]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [edi]
mov dword [esp + 0x30], edi
call dword [eax + 0x30]
test eax, eax
je 0x541a24
lea esi, [edi + 0x13c]
mov eax, dword [esi]
mov ecx, esi
mov dword [esp + 0x34], esi
call dword [eax + 4]
test eax, eax
jle 0x541a24
mov eax, dword [edi]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, edi
call dword [eax + 0x6c]
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x5c]
lea ecx, [esp + 0x24]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x60]
push ecx
mov dword [esp + 0x90], eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x64]
fldz
push ecx
fstp dword [esp]
lea ecx, [esp + 0x58]
mov ebx, eax
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x64]
fild dword [eax + 4]
push ecx
push ecx
fstp dword [esp + 4]
lea eax, [esp + 0xf0]
fild dword [ebx]
fstp dword [esp]
push eax
call fcn.0047402e
mov edx, dword [esp + 0x4c]
add esp, 0x10
push eax
lea eax, [esp + 0x1f0]
call fcn.004044d0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
cmp eax, 0xff
jl 0x541045
fild dword [esp + 0x5c]
mov eax, dword [edi]
mov ecx, edi
fstp dword [esp + 0x44]
fild dword [esp + 0x60]
fstp dword [esp + 0x48]
fild dword [esp + 0x64]
fstp dword [esp + 0x4c]
fild dword [esp + 0x68]
fstp dword [esp + 0x50]
fldz
fst dword [esp + 0x6c]
fstp dword [esp + 0x70]
fild dword [esp + 0x88]
fstp dword [esp + 0x74]
fild dword [esp + 0x8c]
fstp dword [esp + 0x78]
call dword [eax + 0x30]
mov ebx, dword [eax]
mov dword [esp + 0x34], eax
mov eax, dword [edi]
mov ecx, edi
add ebx, 0x4c
call dword [eax + 0x68]
mov edi, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
imul eax, edi
cdq
and edx, 0xff
add eax, edx
sar eax, 8
shl eax, 0x18
or eax, 0xffffff
push eax
sub esp, 0x10
mov edi, esp
lea esi, [esp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [esp + 0x90]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x210]
push eax
movsd dword es:[edi], dword [esi]
call dword [ebx]
jmp 0x541a24
call fcn.004cee12
push eax
call fcn.004fcb30
pop ecx
test eax, eax
je 0x541a24
call fcn.004cee12
push eax
call fcn.004fcb30
mov esi, dword [eax + 0xc]
pop ecx
mov dword [esp + 0xc0], esi
test esi, esi
je 0x541a24
mov ecx, esi
call fcn.00472726
mov eax, dword [eax + 0xa4]
cmp eax, 2
jb 0x541828
push 4
push ecx
mov ecx, esi
call fcn.00472726
add esp, 4
call fcn.004f9f8e
test al, al
je 0x541828
test byte [0x1025534], 1
jne 0x5410dc
or dword [0x1025534], 1
and dword [esp + 0x4e0], 0
push 0x10254e0
call fcn.005400c2
push 0x675fe3
call fcn.0062d063
or dword [esp + 0x4e4], 0xffffffff
pop ecx
test byte [0x1025534], 2
jne 0x541101
or dword [0x1025534], 2
mov esi, 0x1024b18
call fcn.0049b413
push 0x675fd8
call fcn.0062d063
pop ecx
lea ecx, [esp + 0x22c]
call fcn.004b6dc1
lea ecx, [esp + 0x3ec]
mov dword [esp + 0x4e0], 1
call fcn.004b6dc1
mov byte [esp + 0x4e0], 2
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov edx, dword [eax]
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
call dword [edx + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov ebx, eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov edx, dword [eax]
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
call dword [edx + 0x1c]
push 0
mov esi, eax
mov eax, dword [ebx]
push 0
mov ecx, ebx
call dword [eax + 0xc]
push eax
push dword [esi + 4]
lea ecx, [esp + 0x23c]
push dword [esi]
call fcn.004b6f38
mov eax, dword [edi]
mov ecx, edi
xor esi, esi
xor ebx, ebx
call dword [eax + 0x30]
mov edx, dword [eax]
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
call dword [edx + 0x1c]
push dword [eax + 4]
mov ecx, edi
push dword [eax]
xor eax, eax
push ebx
push esi
push eax
push eax
mov eax, dword [edi]
call dword [eax + 0x30]
lea ecx, [esp + 0x24c]
push ecx
mov esi, eax
call fcn.004f9a72
add esp, 0x1c
push ebx
push 1
push 0x15
mov eax, 0x100
push eax
push dword [esp + 0x4c]
lea ecx, [esp + 0x400]
call fcn.004b6f38
lea ecx, [esp + 0x3f4]
call fcn.004b7de4
test al, al
je 0x5412b4
lea ecx, [esp + 0x3f4]
call fcn.004b7f25
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, eax
mov ecx, 0x100
mov eax, ecx
sub eax, edx
imul eax, eax, 0x7f
cdq
and edx, 0x1ff
add eax, edx
mov esi, eax
sar esi, 9
mov dword [esp + 0x20], ecx
mov edi, 0x1024b18
push esi
mov edx, edi
call fcn.0049b551
xor ebx, ebx
cmp dword [esp + 0x3c], ebx
mov dword [esp + 0x1c], eax
jle 0x54129a
push esi
mov edx, edi
call fcn.0049b551
test eax, eax
jne 0x541256
mov eax, dword [esp + 0x14]
mov dword [eax + ebx*4], 0x80808080
inc ebx
jmp 0x541294
mov dword [esp + 0x18], eax
neg dword [esp + 0x18]
jmp 0x54128e
cmp ebx, dword [esp + 0x3c]
jge 0x54129a
cmp dword [esp + 0x1c], 0
jle 0x541273
dec dword [esp + 0x1c]
jmp 0x54128d
mov edx, dword [esp + 0x14]
lea ecx, [eax - 0x80]
and ecx, 0xff
shl ecx, 8
or ecx, 0x80800080
mov dword [edx + ebx*4], ecx
inc ebx
dec eax
cmp eax, dword [esp + 0x18]
jge 0x541260
cmp ebx, dword [esp + 0x3c]
jl 0x54123c
lea ecx, [esp + 0x3f4]
call fcn.004b7f6f
add dword [esp + 0x14], eax
dec dword [esp + 0x20]
jne 0x541223
lea ecx, [esp + 0x3f4]
call fcn.004b7e76
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x238]
call fcn.004b7cd4
fild dword [eax]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x238]
fstp qword [esp + 0x28]
call fcn.004b7d0b
fild dword [eax]
lea eax, [esp + 0x54]
push eax
fdivr qword [esp + 0x28]
lea ecx, [esp + 0x238]
fstp dword [esp + 0x18]
call fcn.004b7cd4
fild dword [eax + 4]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x238]
fstp qword [esp + 0x28]
call fcn.004b7d0b
fild dword [eax + 4]
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x3f8]
fdivr qword [esp + 0x28]
fstp dword [esp + 0x1c]
call fcn.004b7cd4
fild dword [eax]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x3f8]
fstp qword [esp + 0x28]
call fcn.004b7d0b
fild dword [eax]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x238]
fdivr qword [esp + 0x28]
fstp dword [esp + 0x40]
call fcn.004b7cd4
fild dword [eax]
push 0x4505a0
push 4
pop esi
fmul qword [0x6a2640]
push esi
push 0xc
lea eax, [esp + 0x9c]
push eax
fstp dword [esp + 0x44]
call fcn.0041b490
fld dword [0x6a1688]
fst dword [esp + 0x90]
fst dword [esp + 0x94]
fldz
fst dword [esp + 0x98]
fild dword [esp + 0x88]
fld qword [0x6a1448]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp + 0x9c]
fxch st(2)
fst dword [esp + 0xa0]
fstp dword [esp + 0xa8]
fst dword [esp + 0xa4]
fild dword [esp + 0x8c]
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 0xac]
fst dword [esp + 0xb0]
fld dword [esp + 0x20]
fstp dword [esp + 0xb4]
fld dword [esp + 0x1c]
lea ebx, [esp + 0x90]
fstp dword [esp + 0xb8]
fstp dword [esp + 0xbc]
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x238]
call fcn.004b7cd4
fild dword [eax]
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x238]
fstp dword [esp + 0x24]
call fcn.004b7cd4
fild dword [eax + 4]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fstp dword [esp + 0x54]
mov eax, dword [esp + 0x54]
fld dword [esp + 0x1c]
mov dword [esp + 0x24], eax
fstp dword [esp + 0x58]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x2c]
call fcn.005632a0
add ebx, 0xc
dec esi
jne 0x541426
fld dword [esp + 0x90]
lea eax, [esp + 0x1a4]
fstp dword [esp + 0x124]
fld dword [esp + 0x94]
fstp dword [esp + 0x128]
fld dword [esp + 0x98]
fstp dword [esp + 0x12c]
fld1
fst dword [esp + 0x130]
fldz
fst dword [esp + 0x134]
fst dword [esp + 0x138]
fst dword [esp + 0x13c]
fst dword [esp + 0x140]
fld dword [esp + 0x9c]
fstp dword [esp + 0x144]
fld dword [esp + 0xa0]
fstp dword [esp + 0x148]
fld dword [esp + 0xa4]
fstp dword [esp + 0x14c]
fxch st(1)
fst dword [esp + 0x150]
fld dword [esp + 0x14]
fstp dword [esp + 0x154]
fxch st(1)
fst dword [esp + 0x158]
fst dword [esp + 0x15c]
fld dword [esp + 0x34]
fstp dword [esp + 0x160]
fld dword [esp + 0xa8]
fstp dword [esp + 0x164]
fld dword [esp + 0xac]
fstp dword [esp + 0x168]
fld dword [esp + 0xb0]
fstp dword [esp + 0x16c]
fxch st(1)
fst dword [esp + 0x170]
fxch st(1)
fst dword [esp + 0x174]
fld dword [esp + 0x18]
fstp dword [esp + 0x178]
fld dword [esp + 0x3c]
fstp dword [esp + 0x17c]
fstp dword [esp + 0x180]
fld dword [esp + 0xb4]
fstp dword [esp + 0x184]
fld dword [esp + 0xb8]
fstp dword [esp + 0x188]
fld dword [esp + 0xbc]
fstp dword [esp + 0x18c]
fstp dword [esp + 0x190]
fld dword [esp + 0x14]
fstp dword [esp + 0x194]
fld dword [esp + 0x18]
fstp dword [esp + 0x198]
fld dword [esp + 0x3c]
fstp dword [esp + 0x19c]
fld dword [esp + 0x34]
fstp dword [esp + 0x1a0]
call fcn.004fe11a
push esi
push 1
push 4
push 0x204
push 0x20
xor ebx, ebx
mov byte [esp + 0x4f4], 3
call fcn.004fe1d1
lea ecx, [esp + 0x1a4]
call fcn.004fe2b9
mov edi, dword [esp + 0x1cc]
push 0x20
pop ecx
lea esi, [esp + 0x124]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x1a4]
call fcn.004fe2fa
mov esi, dword [esp + 0xc0]
inc ebx
mov edi, ebx
mov ecx, esi
call fcn.0046fcab
push ebx
push ebx
xor edi, edi
mov ecx, esi
call fcn.00470965
push ebx
push ebx
mov edi, ebx
mov ecx, esi
call fcn.00470965
push 0
lea ecx, [esp + 0x238]
mov edi, esi
call fcn.00470889
push ebx
lea ecx, [esp + 0x3f8]
call fcn.00470889
mov edi, 0x204
mov ecx, esi
call fcn.0046f7a6
mov edi, dword [0x102551c]
mov ecx, esi
call fcn.00471159
lea edi, [esp + 0x1a4]
mov ecx, esi
call fcn.0046f8e7
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov edx, dword [eax]
lea ecx, [esp + 0x44]
push ecx
mov ecx, eax
call dword [edx + 0x1c]
fild dword [eax + 4]
fld1
lea eax, [esp + 0x44]
fdivrp st(1)
push eax
lea ecx, [esp + 0x238]
fmul qword [0x6a1600]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fst dword [esp + 0xe8]
fst dword [esp + 0xec]
fst dword [esp + 0xf0]
fstp dword [esp + 0xf4]
fld dword [esp + 0x18]
fstp dword [esp + 0xf8]
fld dword [esp + 0x1c]
fstp dword [esp + 0xfc]
fldz
fst dword [esp + 0x100]
fst dword [esp + 0x104]
fst dword [esp + 0x108]
fst dword [esp + 0x10c]
fst dword [esp + 0x110]
fstp dword [esp + 0x114]
call fcn.004b7cd4
fld dword [esp + 0x14]
fidiv dword [eax]
lea ecx, [esp + 0x234]
lea eax, [esp + 0x44]
push eax
fstp dword [esp + 0x118]
fld dword [esp + 0x1c]
fstp qword [esp + 0x28]
call fcn.004b7cd4
fild dword [eax + 4]
push 4
lea eax, [esp + 0xe8]
push eax
fdivr qword [esp + 0x2c]
mov ecx, esi
fstp dword [esp + 0x120]
fldz
fst dword [esp + 0x124]
fstp dword [esp + 0x128]
call fcn.004711f8
push 6
pop ecx
push 5
pop edi
mov edx, esi
call fcn.004702b8
mov ecx, esi
call fcn.004715da
xor edi, edi
mov ecx, esi
call fcn.0046f7a6
mov ecx, esi
call fcn.00471159
mov ecx, esi
call fcn.0046f8e7
push edi
xor ecx, ecx
mov edi, esi
call fcn.00470889
push ebx
xor ecx, ecx
call fcn.00470889
lea ecx, [esp + 0x234]
call fcn.004b7afd
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x4e0], 2
call fcn.004fe186
lea ecx, [esp + 0x3ec]
mov byte [esp + 0x4e0], bl
call fcn.004b6ebc
or dword [esp + 0x4e0], 0xffffffff
lea ecx, [esp + 0x22c]
call fcn.004b6ebc
jmp 0x541a24
lea eax, [esp + 0xc4]
push eax
call fcn.004dd3fe
lea ecx, [esp + 0x30c]
mov dword [esp + 0x4e0], 4
call fcn.004b6dc1
mov byte [esp + 0x4e0], 5
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov esi, eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
lea ecx, [esp + 0x44]
mov ebx, eax
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x1c]
push dword [eax + 4]
mov ecx, ebx
push dword [eax]
mov eax, dword [ebx]
call dword [eax + 0xc]
lea ecx, [esp + 0xcc]
call fcn.004dd49c
test al, al
je 0x5419fc
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov ebx, eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov edx, dword [eax]
lea ecx, [esp + 0x44]
push ecx
mov ecx, eax
call dword [edx + 0x1c]
push 0
mov esi, eax
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 0xc]
push eax
push dword [esi + 4]
lea ecx, [esp + 0x31c]
push dword [esi]
call fcn.004b6f38
test al, al
je 0x5419fc
mov eax, dword [edi]
mov ecx, edi
xor esi, esi
xor ebx, ebx
call dword [eax + 0x30]
mov edx, dword [eax]
lea ecx, [esp + 0x44]
push ecx
mov ecx, eax
call dword [edx + 0x1c]
push dword [eax + 4]
mov ecx, edi
push dword [eax]
xor eax, eax
push ebx
push esi
push eax
push eax
mov eax, dword [edi]
call dword [eax + 0x30]
lea ecx, [esp + 0xe0]
push ecx
mov esi, eax
call fcn.004f98f8
add esp, 0x1c
test al, al
je 0x5419fc
lea ecx, [esp + 0x314]
call fcn.004bc9de
test al, al
je 0x5419fc
xor edx, edx
xor ecx, ecx
push edx
xor eax, eax
push ecx
mov ecx, dword [esp + 0x3c]
lea edi, [esp + 0x38]
stosb byte es:[edi], al
mov eax, dword [ecx]
call dword [eax + 4]
shl eax, 8
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, 0x300
push eax
push dword [esp + 0x3c]
lea eax, [esp + 0x324]
push eax
lea eax, [esp + 0xdc]
call fcn.00541aae
test al, al
je 0x5419fc
fild dword [esp + 0x5c]
push 0xffffffffffffffff
sub esp, 0x10
mov edi, esp
fstp dword [esp + 0x58]
lea esi, [esp + 0x58]
fild dword [esp + 0x74]
sub esp, 0x10
lea eax, [esp + 0x210]
lea ecx, [esp + 0x330]
fstp dword [esp + 0x6c]
fild dword [esp + 0x88]
fstp dword [esp + 0x70]
fild dword [esp + 0x8c]
fstp dword [esp + 0x74]
movsd dword es:[edi], dword [esi]
fldz
fst dword [esp + 0x90]
movsd dword es:[edi], dword [esi]
fstp dword [esp + 0x94]
fild dword [esp + 0xac]
movsd dword es:[edi], dword [esi]
fstp dword [esp + 0x98]
fild dword [esp + 0xb0]
movsd dword es:[edi], dword [esi]
fstp dword [esp + 0x9c]
mov edi, esp
lea esi, [esp + 0x90]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call fcn.004b945d
lea ecx, [esp + 0x30c]
mov byte [esp + 0x4e0], 4
call fcn.004b6ebc
or dword [esp + 0x4e0], 0xffffffff
lea ecx, [esp + 0xc4]
call fcn.004dd45c
mov ecx, dword [esp + 0x4d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4c0]
xor ecx, esp
call fcn.0062c8b8
mov esp, ebp
pop ebp
ret 4