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

Disassembly:
mov al, byte [0x683349]
sub esp, 0x90
push ebx
xor ebx, ebx
cmp al, bl
je 0x515a2b
cmp byte [0x695f38], bl
jne 0x515a2b
cmp byte [0x695f3a], bl
jne 0x515a2b
cmp dword [0x7b2a0c], 0xffff0101
jb 0x515a2b
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push esi
mov esi, dword [0x696c3c]
push esi
push ebx
push eax
call dword [ecx + 0x94]
mov edx, dword [esi]
lea eax, [esp + 0x78]
push eax
push esi
mov word [0x696c00], 2
call dword [edx + 0x30]
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov eax, dword [0x70eda0]
mov dword [esp + 0x1c], edx
lea edx, [esp + 0x10]
push edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], 0x3f800000
mov ecx, dword [eax]
push eax
call dword [ecx + 0xbc]
xor eax, eax
call fcn.00514d10
cmp byte [0x70eddc], bl
je 0x5159fc
mov edx, dword [0x6db190]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x15c]
mov dl, byte [0x695f30]
mov esi, dword [0x6db198]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
neg dl
sbb edx, edx
and edx, 0x10
or edx, esi
and edx, 0x10
push edx
push eax
call dword [ecx + 0x134]
mov edx, dword [0x697d18]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x170]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0x1ac]
mov ecx, dword [0x696c2c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push ecx
push ebx
push eax
call dword [edx + 0x104]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 3
push 1
push ebx
push eax
call dword [edx + 0x114]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 3
push 2
push ebx
push eax
call dword [ecx + 0x114]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 2
push 5
push ebx
push eax
call dword [edx + 0x114]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 2
push 6
push ebx
push eax
call dword [ecx + 0x114]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 7
push ebx
push eax
call dword [edx + 0x114]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 3
push 0x16
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 7
push 0xa8
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push ebx
push 0x1b
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push ebx
push 0xf
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push ebx
push 7
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push ebx
push 0x1c
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 2
push 1
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 2
push 2
push ebx
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 2
push 4
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 2
push 5
push ebx
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 1
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 4
push 1
push eax
call dword [edx + 0x10c]
mov ax, word [0x7b2ada]
sub ax, word [0x7b2ad6]
mov ecx, dword [0x7b2ad8]
movsx eax, ax
mov dword [esp + 8], eax
sub ecx, dword [0x7b2ad4]
fild dword [esp + 8]
fstp dword [esp + 0xc]
fld dword [0x66c410]
fdiv dword [esp + 0xc]
fld st(0)
fadd st(1)
fstp dword [esp + 0x28]
movsx ecx, cx
fld dword [0x66c4f0]
mov dword [esp + 8], ecx
fsub st(1)
mov eax, dword [0x70eda0]
push 5
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x38]
push ecx
push 0xd
fstp st(0)
mov dword [esp + 0x38], ebx
fild dword [esp + 0x14]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], ebx
fstp dword [esp + 0x14]
mov dword [esp + 0x54], ebx
fld dword [0x66c410]
mov dword [esp + 0x58], ebx
fdiv dword [esp + 0x14]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], 0x3f000000
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], 0x3f800000
mov dword [esp + 0x74], 0x3f800000
mov dword [esp + 0x78], 0x3f800000
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], 0x3f800000
push eax
fld dword [0x66c4f8]
fmul st(1)
fstp dword [esp + 0x4c]
fadd dword [0x66c410]
fstp dword [esp + 0x54]
mov edx, dword [eax]
call dword [edx + 0x178]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
push 0x18
push 0x6d2f18
mov eax, edx
mov dword [0x6d2f30], edx
push 2
mov dword [0x6d2f48], eax
mov eax, dword [0x70eda0]
mov edx, ecx
push 6
mov dword [0x6d2f24], ebx
mov dword [0x6d2f28], ebx
mov dword [0x6d2f2c], ebx
mov dword [0x6d2f18], ebx
mov dword [0x6d2f1c], ebx
mov dword [0x6d2f3c], ebx
mov dword [0x6d2f40], 0x3f800000
mov dword [0x6d2f44], ebx
mov dword [0x6d2f34], ebx
mov dword [0x6d2f54], ebx
mov dword [0x6d2f58], 0x3f800000
mov dword [0x6d2f5c], 0x3f800000
mov dword [0x6d2f4c], ecx
mov dword [0x6d2f6c], ebx
mov dword [0x6d2f70], ebx
mov dword [0x6d2f74], 0x3f800000
mov dword [0x6d2f60], ebx
mov dword [0x6d2f64], edx
mov dword [0x6d2f68], ebx
mov dword [0x6d2f50], ebx
mov dword [0x6d2f38], ebx
mov dword [0x6d2f20], ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14c]
movzx ecx, byte [0x695f30]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x134]
mov eax, dword [0x7b2aa0]
push ebx
push ebx
call fcn.00528570
add esp, 8
mov eax, 2
call fcn.00514d10
cmp byte [0x68334a], bl
pop esi
jne 0x515a24
mov byte [0x70eddc], bl
mov byte [0x70eddd], 1
pop ebx
add esp, 0x90
ret