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

Disassembly:
sub esp, 0x84
push ebx
push ebp
xor ebp, ebp
cmp dword [0xa9655c], ebp
push esi
push edi
je 0x4edf6e
mov dword [0xa6fa88], 1
push 0xa96834
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x9d2c30]
imul ecx, ecx, 0x4d0
movss xmm2, dword [0x6cc5ec]
fld dword [ecx + 0x9ce3ec]
fld1
fdivrp st(1)
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fmul dword [0xa6fa38]
fstp dword [esp + 0x2c]
fld1
fld dword [esp + 0x2c]
fcomi st(1)
fstp st(1)
jbe 0x4edfc1
movss dword [esp + 0x2c], xmm2
fstp st(0)
fld dword [esp + 0x2c]
cmp dword [ecx + 0x9ce3f4], ebp
jne 0x4ee031
movss xmm0, dword [0x6b09a0]
movss dword [0xa6fb54], xmm0
movss xmm0, dword [0x6f99f0]
movss dword [0xa6fb58], xmm0
movss xmm0, dword [0x6f9ad4]
movss dword [0xa6fb44], xmm0
movss dword [0xa6fb40], xmm0
movss dword [0xa6fb3c], xmm0
movss xmm0, dword [0x6f9ad0]
movss dword [0xa6fb50], xmm0
movss dword [0xa6fb4c], xmm0
movss dword [0xa6fb48], xmm0
mov dword [0x93a26c], ebp
jmp 0x4ee03f
fmul qword [0x6fa410]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fld qword [0x6f9ee0]
mov eax, dword [0x9cdd20]
fmul st(1)
xorps xmm1, xmm1
add eax, 0xa
cmp dword [0xa6f950], ebp
fstp dword [0xa6fa18]
mov edx, 0xa6f5a4
fld qword [0x6f9c98]
mov dword [0xa968ac], ebp
fmul st(1)
mov dword [0xa968a0], ebp
mov dword [0xa968a4], ebp
mov dword [0xa968a8], ebp
fstp dword [0xa6fa1c]
movss dword [0xa96874], xmm1
fld qword [0x6fa088]
movss dword [0xa96878], xmm2
fmul st(1)
movss dword [0xa9687c], xmm1
mov dword [0xa6fca0], 0xa6fd20
mov dword [0xa6fc94], ebp
fstp dword [0xa6fa20]
mov dword [0xa6fc98], ebp
fld qword [0x6fa668]
mov dword [0xa6fcb0], 0xa71d20
fmul st(1)
mov dword [0xa6fca4], ebp
mov dword [0xa6fca8], ebp
mov dword [esp + 0x14], 0xa95128
fstp dword [0xa6fa24]
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], eax
fmul qword [0x6fa660]
mov dword [0xa6f968], eax
mov dword [0xa6f904], 0xa6c9f0
fmul dword [0xa6fa3c]
fstp dword [0xa6fa28]
fld dword [0xa6fa18]
fld qword [0x6f9c68]
fmul st(1)
fld dword [0xa6fa40]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [0xa6fa2c]
fxch st(1)
fmul qword [0x6f99e0]
fmul st(1)
fstp dword [0xa6fa30]
fld dword [0xa6fa1c]
fmul qword [0x6f9ae8]
fmulp st(1)
fstp dword [0xa6fa34]
jle 0x4ee178
mov dword [0xa6f900], ebp
mov dword [0xa6f908], ebp
mov dword [0xa6f90c], 0xa6f59c
jmp 0x4ee191
mov eax, 0xa6e55c
mov dword [0xa6f900], eax
mov dword [0xa6f908], 0xa6f59c
mov dword [0xa6f90c], eax
mov eax, dword [0xa6f970]
mov edi, dword [0xa6f96c]
movss xmm0, dword [0x6f9b30]
xor esi, esi
xor ecx, ecx
cmp eax, esi
mov ebx, 0x10
mov dword [esp + 0x44], edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x20], ebp
movss dword [esp + 0x4c], xmm0
mov dword [esp + 0x58], ebp
mov dword [esp + 0x48], ecx
mov dword [esp + 0x7c], 1
mov dword [esp + 0x80], 2
mov dword [esp + 0x84], 4
mov dword [esp + 0x88], 8
mov dword [esp + 0x8c], ebx
movss dword [esp + 0x40], xmm1
mov dword [esp + 0x2c], 0xa95484
mov dword [esp + 0x5c], esi
mov dword [esp + 0x54], eax
jbe 0x4ee4d8
mov dword [esp + 0x30], esi
lea eax, [esp + 0x13]
push eax
lea ecx, [esp + 0x44]
push ecx
push edi
mov dword [esp + 0x40], ebx
call fcn.004ecc10
mov esi, dword [edi + 0x70]
mov ebx, eax
mov edx, ebx
and edx, 0xf
mov eax, dword [edx*4 + 0xa6fa04]
add esp, 0xc
test bl, 0x10
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], esi
jne 0x4ee4a9
mov ecx, dword [esp + 0x30]
and ecx, 0xfffffffc
cmp ecx, 0x35c
jge 0x4ee4a9
mov ecx, dword [esp + 0x2c]
fld dword [esp + 0x40]
fld dword [esp + 0x4c]
add dword [esp + 0x30], 4
movss xmm1, dword [esp + 0x40]
mov word [ecx], bp
mov byte [ecx + 2], al
mov byte [ecx + 3], bl
add ecx, 4
fcompi st(1)
mov dword [esp + 0x2c], ecx
jbe 0x4ee29a
movss dword [esp + 0x4c], xmm1
mov dword [esp + 0x58], ebp
fld qword [0x6f9c98]
fcompi st(1)
fstp st(0)
jbe 0x4ee2be
mov eax, dword [0xa369dc]
mov dx, word [eax + ebp*2 + 2]
cmp dx, word [eax + ebp*2]
je 0x4ee2be
mov dword [esp + 0x5c], 1
movzx eax, byte [edi + 0x84]
mov ecx, dword [esp + ebx*4 + 0x7c]
and ecx, eax
mov eax, dword [esp + 0x34]
or dword [esp + 0x48], ecx
test al, 0x10
mov dword [esp + 0x1c], 0
jne 0x4ee3cd
mov edx, dword [esp + 0x38]
mov ebp, dword [edx + 0x70]
xor ecx, ecx
cmp eax, ebx
mov dword [esp + 0x24], ecx
jge 0x4ee2fd
mov ecx, 8
mov dword [esp + 0x24], ecx
mov al, byte [ebp + 0x1b]
movzx edx, al
and edx, 8
cmp edx, ecx
je 0x4ee3bb
and al, 0xf7
or al, byte [esp + 0x24]
mov byte [ebp + 0x1b], al
mov eax, dword [esp + 0x14]
cmp dword [eax - 4], ebp
je 0x4ee3bb
test esi, esi
je 0x4ee32f
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x1c], ecx
mov edx, dword [esp + 0x34]
push edx
call fcn.004e31c0
mov esi, eax
add esp, 4
test esi, esi
je 0x4ee3b7
movzx eax, byte [ebp + 0x1b]
mov ecx, dword [esp + 0x18]
movzx edx, byte [ebp + 0x19]
mov edi, dword [esp + 0x38]
movss xmm0, dword [ebp + 0x2c]
push eax
movzx eax, word [ebp + 0x12]
push ecx
push edx
push eax
mov eax, dword [esp + 0x44]
call fcn.004e41d0
mov cl, byte [ebp + 0x18]
mov byte [esi + 0x18], cl
xor ecx, ecx
add esp, 0x10
cmp byte [ebp + 0x18], cl
jbe 0x4ee395
mov edx, ebp
lea eax, [esi + 0x14]
sub edx, esi
nop
mov di, word [edx + eax]
mov word [eax], di
movzx edi, byte [ebp + 0x18]
add ecx, 1
add eax, 2
cmp ecx, edi
jl 0x4ee380
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x44]
mov dword [eax], esi
add eax, 4
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
add edx, 0xffffffff
mov dword [ebp + 0x1c], edx
mov dword [eax - 4], esi
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x34], ebx
mov ebp, dword [esp + 0x20]
jle 0x4ee3cd
mov dword [esp + 0x1c], 4
test esi, esi
je 0x4ee41c
movsx ecx, byte [esi + 0x1a]
cmp ecx, ebx
jne 0x4ee415
movzx edx, byte [esi + 0x1b]
and edx, 5
cmp dword [esp + 0x1c], edx
jne 0x4ee415
mov eax, dword [esp + 0x18]
movzx ecx, byte [esp + 0x13]
mov dword [esi + 0x1c], eax
push edi
push esi
mov eax, ebx
movss dword [esi + 0x2c], xmm1
call fcn.004e3120
mov eax, dword [esp + 0x30]
add esp, 8
mov dword [eax], esi
add eax, 4
mov dword [esp + 0x28], eax
jmp 0x4ee4a5
mov dword [esi + 4], 0
push ebx
call fcn.004e31c0
mov esi, eax
xor eax, eax
add esp, 4
cmp esi, eax
je 0x4ee48e
mov ecx, dword [esi + 4]
cmp ecx, eax
je 0x4ee43c
cmp dword [ecx + 0x70], esi
jne 0x4ee43c
mov dword [ecx + 0x70], eax
mov cx, word [esp + 0x20]
mov word [esi + 0x12], cx
movzx ecx, byte [esp + 0x13]
push edi
push esi
mov eax, ebx
mov dword [esi + 4], edi
mov byte [esi + 0x1a], bl
call fcn.004e3120
mov edx, dword [esp + 0x20]
mov al, byte [esp + 0x24]
mov dword [esi + 0x1c], edx
movss dword [esi + 0x2c], xmm1
mov dword [edi + 0x70], esi
mov byte [esi + 0x1b], al
mov eax, dword [esp + 0x30]
mov dword [eax], esi
add eax, 4
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
add esp, 8
mov dword [eax], esi
add eax, 4
mov dword [esp + 0x14], eax
jmp 0x4ee4a1
mov dword [edi + 0x70], eax
mov eax, 4
sub dword [esp + 0x2c], eax
or ebx, 0x10
sub dword [esp + 0x30], eax
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
add ebp, eax
imul eax, eax, 0x88
mov dword [esp + 0x38], edi
add edi, eax
cmp ebp, dword [esp + 0x54]
mov dword [esp + 0x44], edi
mov dword [esp + 0x20], ebp
jb 0x4ee219
xorps xmm1, xmm1
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x28]
mov esi, edx
sub esi, 0xa6f5a4
sar esi, 2
mov dword [0xa6f59c], esi
mov esi, dword [esp + 0x2c]
mov byte [esi + 2], 0
cmp dword [0xa6f59c], 2
mov ebp, dword [0xa6f5a4]
mov ebx, dword [edx - 4]
jb 0x4ee650
cmp word [ebp + 0x12], 0
jne 0x4ee650
movzx edx, word [ebx + 0x12]
add edx, ecx
cmp edx, eax
jl 0x4ee650
mov al, byte [ebp + 0x1a]
cmp byte [ebx + 0x1a], al
mov dword [esp + 0x1c], 0
jle 0x4ee538
mov dword [esp + 0x1c], 4
mov al, byte [ebp + 0x1b]
movzx ecx, al
and ecx, 4
cmp dword [esp + 0x1c], ecx
je 0x4ee5b3
cmp ebp, dword [0xa95128]
jne 0x4ee55a
and al, 0xfb
or al, byte [esp + 0x1c]
mov byte [ebp + 0x1b], al
jmp 0x4ee5b3
movsx edx, byte [ebp + 0x1a]
push edx
call fcn.004e31c0
mov esi, eax
add esp, 4
test esi, esi
je 0x4ee5b3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
movzx edx, byte [ebp + 0x19]
mov edi, dword [ebp + 4]
movss xmm0, dword [ebp + 0x2c]
push eax
movsx eax, byte [ebp + 0x1a]
push ecx
push edx
push 0
call fcn.004e41d0
mov eax, dword [esp + 0x24]
mov byte [esi + 0x18], 0
mov dword [eax], esi
add eax, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
add esp, 0x10
add eax, 0xffffffff
mov dword [ebp + 0x1c], eax
mov dword [0xa6f5a4], esi
mov al, byte [ebx + 0x1a]
cmp al, byte [ebp + 0x1a]
mov dword [esp + 0x24], 0
jge 0x4ee5cb
mov dword [esp + 0x24], 8
mov al, byte [ebx + 0x1b]
movzx ecx, al
and ecx, 8
cmp dword [esp + 0x24], ecx
je 0x4ee650
mov edx, dword [esp + 0x14]
cmp ebx, dword [edx - 4]
jne 0x4ee5ee
and al, 0xf7
or al, byte [esp + 0x24]
mov byte [ebx + 0x1b], al
jmp 0x4ee650
movsx eax, byte [ebx + 0x1a]
push eax
call fcn.004e31c0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x4ee650
movzx ecx, byte [ebx + 0x1b]
movzx eax, byte [ebx + 0x19]
mov edx, dword [esp + 0x18]
mov edi, dword [ebx + 4]
movss xmm0, dword [ebx + 0x2c]
and ecx, 0xfffffff7
or ecx, dword [esp + 0x24]
mov esi, ebp
push ecx
movzx ecx, word [ebx + 0x12]
push edx
push eax
movsx eax, byte [ebx + 0x1a]
push ecx
call fcn.004e41d0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [eax], ebp
add eax, 4
add esp, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
add edx, 0xffffffff
mov dword [ebx + 0x1c], edx
mov dword [eax - 4], ebp
mov ecx, dword [0x9d2c30]
imul ecx, ecx, 0x4d0
cmp dword [ecx + 0x9ce3f4], 0
jne 0x4ee67a
mov edi, dword [esp + 0x2c]
sub edi, 0xa95484
sar edi, 2
call fcn.004ec820
xorps xmm1, xmm1
mov edi, 0xa95128
cmp dword [esp + 0x14], edi
jbe 0x4ee6cb
mov bl, 3
mov esi, dword [edi]
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x78]
mov ecx, dword [eax + 0x20]
add eax, 0x20
mov dword [esi + 0x20], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x24], edx
mov eax, dword [eax + 8]
add edi, 4
cmp byte [esi + 0x1a], bl
mov dword [esi + 0x28], eax
jg 0x4ee6b5
mov eax, esi
call fcn.004eacf0
jmp 0x4ee6be
push esi
call fcn.004eb0b0
add esp, 4
and byte [esi + 0x1b], 0xc
cmp edi, dword [esp + 0x14]
jb 0x4ee687
xorps xmm1, xmm1
mov eax, dword [esp + 0x58]
mov ecx, dword [0xa6f96c]
mov dword [0xa96860], eax
imul eax, eax, 0x88
movss xmm0, dword [eax + ecx + 0x54]
add eax, ecx
cmp dword [0xa9655c], 0
movss dword [0xa96854], xmm0
movss xmm0, dword [eax + 0x58]
movss dword [0xa9685c], xmm0
je 0x4ee712
mov edx, dword [0xa6fa8c]
mov dword [0xa6fa88], edx
mov eax, dword [0x9d2c30]
imul eax, eax, 0x4d0
cmp dword [eax + 0x9ce3f4], 0
jne 0x4ee883
fld qword [0x6fa658]
fld dword [0xa6fb58]
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jnp 0x4ee883
mov eax, dword [0xa6f94c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x5c]
mov dword [eax*4 + 0xa9686c], ecx
mov dword [eax*4 + 0xa96864], edx
mov ecx, dword [0xa968ac]
test ecx, ecx
je 0x4ee7b3
mov dword [esp + 0x5c], ecx
fild dword [esp + 0x5c]
jge 0x4ee779
fadd dword [0x6f9a18]
fmul qword [0x6f9ef0]
fld1
fdivrp st(1)
fstp dword [esp + 0x5c]
fild dword [0xa968a0]
fld dword [esp + 0x5c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x60]
fild dword [0xa968a4]
fmul st(1)
fstp dword [esp + 0x64]
fimul dword [0xa968a8]
fstp dword [esp + 0x68]
jmp 0x4ee7cd
movss xmm0, dword [0x6cc5ec]
movss dword [esp + 0x68], xmm1
movss dword [esp + 0x60], xmm1
movss dword [esp + 0x64], xmm0
movss xmm0, dword [0xa6fb58]
movss dword [eax*4 + 0xa96898], xmm0
lea eax, [eax + eax*2]
fld dword [eax*4 + 0xa96880]
fld qword [0x6f9cc8]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x6c]
fld dword [eax*4 + 0xa96884]
fmul st(1)
fstp dword [esp + 0x70]
fmul dword [eax*4 + 0xa96888]
fstp dword [esp + 0x74]
fld dword [esp + 0x6c]
fadd dword [esp + 0x60]
fstp dword [esp + 0x7c]
fld dword [esp + 0x70]
fadd dword [esp + 0x64]
fstp dword [esp + 0x80]
fld dword [esp + 0x74]
fadd dword [esp + 0x68]
fstp dword [esp + 0x84]
fld dword [esp + 0x7c]
fld qword [0x6f9dc8]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
fld dword [esp + 0x80]
mov dword [eax*4 + 0xa96880], ecx
fmul st(1)
fstp dword [esp + 0x70]
mov edx, dword [esp + 0x70]
mov dword [eax*4 + 0xa96884], edx
fmul dword [esp + 0x84]
fstp dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
mov dword [eax*4 + 0xa96888], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret