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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd8
mov eax, dword [0x5876e0]
xor eax, esp
mov dword [esp + 0xd4], eax
mov dword [esp + 0x14], edx
mov eax, ecx
mov ecx, dword [ebp + 8]
xorps xmm5, xmm5
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 0x10]
push esi
movzx esi, byte [eax + 0x14]
mov dword [esp + 0x4c], edx
inc esi
mov edx, dword [ebp + 0x14]
push edi
mov dword [esp + 0x40], edx
lea edi, [ecx*4 + 4]
mov edx, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], 0
mov dword [esp + 0x24], 0
movsd qword [esp + 0x68], xmm5
imul esi, edi
call fcn.004cdc20
test eax, eax
jne 0x4edae6
test esi, esi
jle 0x4edae6
mov eax, esi
cdq
push edx
push eax
call fcn.00459930
mov edx, eax
add esp, 8
mov dword [esp + 0x10], edx
test edx, edx
je 0x4edae6
mov ecx, dword [esp + 8]
push esi
push 0
push edx
movzx eax, byte [ecx + 0x14]
imul eax, edi
add eax, edx
mov dword [esp + 0x18], eax
call fcn.00509d10
mov esi, dword [esp + 0x14]
add esp, 0xc
mov edx, dword [esp + 0x14]
xor edi, edi
movzx eax, byte [esi + 0x14]
test eax, eax
jle 0x4ed5c5
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x18], ecx
lea ebx, [ebx]
add eax, ecx
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov dword [esi], eax
test edx, edx
jle 0x4ed58b
mov eax, dword [esi]
mov dword [eax + ecx*4], ecx
inc ecx
cmp ecx, edx
jl 0x4ed581
push dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
push dword [esp + 0x20]
push edi
push edx
mov edx, dword [esi]
call fcn.004ed320
mov eax, dword [esp + 0x18]
inc edi
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [esp + 0x14]
add esi, 4
add ecx, edx
movzx eax, byte [eax + 0x14]
mov dword [esp + 0x18], ecx
cmp edi, eax
jl 0x4ed570
mov esi, dword [esp + 8]
movzx eax, byte [esi + 0x14]
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], 0
test eax, eax
jle 0x4ed92e
mov eax, dword [esi + 0x10]
lea edi, [edx - 1]
movzx ecx, byte [esi + 0x16]
add eax, 0xfffffffc
mov dword [esp + 0x5c], eax
cdq
idiv ecx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
mov ecx, eax
mov eax, 0x55555556
mov dword [esp + 0x28], edi
imul ecx
mov ecx, dword [esp + 0x14]
mov eax, edx
mov dword [esp + 0x18], esi
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], ecx
nop
xor edx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], edx
xorps xmm5, xmm5
xorps xmm6, xmm6
xorps xmm7, xmm7
cmp eax, ecx
jg 0x4ed8f2
mov ecx, dword [esi]
mov eax, dword [ecx]
lea esi, [eax + eax*2]
mov eax, dword [ecx + edi*4]
shl esi, 4
mov dword [esp + 0x48], esi
lea eax, [eax + eax*2]
shl eax, 4
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xc]
lea edi, [eax + eax]
mov eax, dword [esp + 0x5c]
cdq
idiv dword [esp + 0x4c]
mov dword [esp + 0x54], edi
mov ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x60], eax
mov edi, edi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x64]
movdqu xmm0, xmmword [esi + ecx]
movdqu xmmword [esp + 0x70], xmm0
movdqu xmm0, xmmword [esi + ecx + 0x10]
movdqu xmmword [esp + 0x80], xmm0
movdqu xmm0, xmmword [esi + ecx + 0x20]
mov esi, 1
movdqu xmmword [esp + 0x90], xmm0
movdqu xmm0, xmmword [eax + ecx]
movdqu xmmword [esp + 0xa0], xmm0
movdqu xmm0, xmmword [eax + ecx + 0x10]
movdqu xmmword [esp + 0xb0], xmm0
movdqu xmm0, xmmword [eax + ecx + 0x20]
movdqu xmmword [esp + 0xc0], xmm0
cmp dword [esp + 0x28], esi
jle 0x4ed72b
mov edx, dword [esp + 0x18]
mov edi, dword [edx]
add edi, 4
mov eax, dword [edi]
lea edx, [esp + 0x70]
lea eax, [eax + eax*2]
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 8]
push eax
cmp esi, dword [esp + 0x30]
jl 0x4ed711
lea edx, [esp + 0xa4]
call fcn.004ecaf0
mov ecx, dword [esp + 0x20]
inc esi
add esp, 4
add edi, 4
cmp esi, dword [esp + 0x28]
jl 0x4ed6f1
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 8]
xor eax, eax
xorps xmm2, xmm2
test edi, edi
jle 0x4ed77b
mov cl, byte [esi + 0x15]
jmp 0x4ed740
test cl, cl
jne 0x4ed758
movss xmm0, dword [esp + eax*4 + 0x7c]
movss xmm1, dword [esp + eax*4 + 0x78]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
jmp 0x4ed76c
movd xmm0, dword [esp + eax*4 + 0x7c]
movd xmm1, dword [esp + eax*4 + 0x78]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
add eax, 2
addsd xmm2, xmm0
cmp eax, edi
jl 0x4ed740
xor eax, eax
addsd xmm2, xmm5
xorps xmm5, xmm5
test edi, edi
jle 0x4ed7d7
mov cl, byte [esi + 0x15]
jmp 0x4ed790
test cl, cl
jne 0x4ed7ae
movss xmm0, dword [esp + eax*4 + 0xac]
movss xmm1, dword [esp + eax*4 + 0xa8]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
jmp 0x4ed7c8
movd xmm0, dword [esp + eax*4 + 0xac]
movd xmm1, dword [esp + eax*4 + 0xa8]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
add eax, 2
addsd xmm5, xmm0
cmp eax, edi
jl 0x4ed790
push ecx
lea eax, [esp + 0xa4]
mov ecx, esi
push eax
lea edx, [esp + 0x78]
addsd xmm5, xmm2
call fcn.004ecd40
movsd xmm2, qword [0x5731f8]
add esp, 8
xor eax, eax
movapd xmm4, xmm0
movapd xmm3, xmm2
test edi, edi
jle 0x4ed84b
mov cl, byte [esi + 0x15]
jmp 0x4ed810
test cl, cl
jne 0x4ed828
movss xmm0, dword [esp + eax*4 + 0x7c]
movss xmm1, dword [esp + eax*4 + 0x78]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
jmp 0x4ed83c
movd xmm0, dword [esp + eax*4 + 0x7c]
movd xmm1, dword [esp + eax*4 + 0x78]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
add eax, 2
mulsd xmm3, xmm0
cmp eax, edi
jl 0x4ed810
xor eax, eax
test edi, edi
jle 0x4ed89b
mov cl, byte [esi + 0x15]
test cl, cl
jne 0x4ed872
movss xmm0, dword [esp + eax*4 + 0xac]
movss xmm1, dword [esp + eax*4 + 0xa8]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
jmp 0x4ed88c
movd xmm0, dword [esp + eax*4 + 0xac]
movd xmm1, dword [esp + eax*4 + 0xa8]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
add eax, 2
mulsd xmm2, xmm0
cmp eax, edi
jl 0x4ed854
mov ecx, dword [esp + 0x2c]
addsd xmm2, xmm3
cmp ecx, dword [esp + 0x60]
je 0x4ed8bf
comisd xmm6, xmm4
ja 0x4ed8bf
ucomisd xmm4, xmm6
lahf
test ah, 0x44
jp 0x4ed8cf
comisd xmm7, xmm2
jbe 0x4ed8cf
mov edx, ecx
movapd xmm6, xmm4
mov dword [esp + 0x3c], edx
movapd xmm7, xmm2
jmp 0x4ed8d3
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x48]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, dword [esp + 0x44]
jle 0x4ed680
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4ed906
movsd xmm0, qword [esp + 0x68]
comisd xmm0, xmm5
jbe 0x4ed914
mov dword [esp + 0x30], eax
movsd qword [esp + 0x68], xmm5
mov dword [esp + 0x24], edx
inc eax
add esi, 4
cmp eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], esi
jl 0x4ed620
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x40]
mov eax, dword [edi + ecx*4]
mov eax, dword [eax]
lea eax, [eax + eax*2]
add eax, eax
movdqu xmm0, xmmword [edx + eax*8]
movdqu xmmword [esi], xmm0
movdqu xmm0, xmmword [edx + eax*8 + 0x10]
movdqu xmmword [esi + 0x10], xmm0
movdqu xmm0, xmmword [edx + eax*8 + 0x20]
movdqu xmmword [esi + 0x20], xmm0
mov eax, dword [edi + ecx*4]
xor esi, esi
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x38]
lea eax, [eax + eax*2]
add eax, eax
movdqu xmm0, xmmword [edx + eax*8]
movdqu xmmword [ecx], xmm0
movdqu xmm0, xmmword [edx + eax*8 + 0x10]
movdqu xmmword [ecx + 0x10], xmm0
movdqu xmm0, xmmword [edx + eax*8 + 0x20]
mov eax, ecx
movdqu xmmword [eax + 0x20], xmm0
cmp dword [esp + 0x14], esi
jle 0x4eda61
jmp 0x4ed9b0
cmp esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x50]
cmovl eax, dword [esp + 0x40]
cmovl ecx, dword [esp + 0x58]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
mov eax, dword [edi + eax*4]
mov eax, dword [eax + esi*4]
lea eax, [eax + eax*2]
shl eax, 4
add eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x18]
mov ecx, dword [esp + 8]
movzx edi, byte [eax + 2]
movzx eax, byte [eax + 3]
shl edi, 8
add edi, eax
mov eax, dword [ecx + 0x10]
movzx ecx, byte [ecx + 0x16]
sub eax, 4
cdq
idiv ecx
cmp edi, eax
jge 0x4eda36
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
push edi
push dword [esp + 0x24]
call fcn.004eadf0
lea edx, [edi + 1]
add esp, 8
mov edi, dword [esp + 0xc]
mov eax, edx
sar eax, 8
mov ecx, dword [edi + 0x18]
mov byte [ecx + 2], al
mov byte [ecx + 3], dl
mov dword [edi + 0x14], 1
push dword [esp + 0x20]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
call fcn.004ecaf0
mov edx, dword [esp + 0x20]
inc esi
mov edi, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x38]
cmp esi, dword [esp + 0x14]
jl 0x4ed9b0
cmp dword [0x58c138], 0
je 0x4edac6
mov eax, dword [0x5a22a8]
test eax, eax
je 0x4eda7d
push eax
call dword [0x58c190]
add esp, 4
push edi
call dword [0x58c16c]
sub dword [0x5a22e8], eax
add esp, 4
dec dword [0x5a230c]
push edi
call dword [0x58c164]
mov eax, dword [0x5a22a8]
add esp, 4
test eax, eax
je 0x4edad0
push eax
call dword [0x58c198]
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0xd4]
xor ecx, esp
call fcn.0050904e
mov esp, ebp
pop ebp
ret
push edi
call dword [0x58c164]
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0xd4]
xor ecx, esp
call fcn.0050904e
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0xdc]
mov eax, 7
pop edi
pop esi
xor ecx, esp
call fcn.0050904e
mov esp, ebp
pop ebp
ret