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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb0
mov eax, 0x40080002
mov edi, 8
mov bl, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x44], 0
sub eax, edx
mov dword [esp + 0x8c], eax
jmp 0x4cf592
xor ebx, ebx
lea esi, [esp + 0x98]
call fcn.005332ac
mov dword [esp + 0x94], eax
mov eax, dword [0xad10fc]
test eax, eax
je 0x4cf5c3
jmp 0x4cf5fe
mov eax, dword [esp + 0x50]
xchg dword [0xad10fc], eax
mov eax, dword [0xad10fc]
test eax, eax
jne 0x4cf5fe
xorps xmm0, xmm0
movaps xmmword [esp + 0x50], xmm0
push 2
push 0x10
lea eax, [esp + 0x58]
push eax
push 0
call fcn.00533514
test eax, eax
jns 0x4cf5b0
mov ecx, esi
mov edx, eax
call fcn.004d45e0
mov eax, dword [esp + 0x98]
xchg dword [0xad10fc], eax
mov eax, dword [0xad10fc]
test eax, eax
je 0x4cf5c3
mov eax, 1
lock xadd dword [0xad10fc], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], 0xa4e9c4
mov dword [esp + 0x5c], 2
mov dword [esp + 0x78], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x38], fcn.00523a90
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x34]
mov dword [esp + 0x40], fcn.00523a90
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 2
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00507de0
add esp, 8
movsd xmm0, qword [esp + 0xc]
mov eax, dword [esp + 0x14]
test bl, 1
movsd qword [esp + 0x50], xmm0
mov dword [esp + 0x58], eax
jne 0x4cf6a2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4cf6a2
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push dword [esp + 0x2c]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x58]
movsd xmm0, qword [esp + 0x50]
mov dword [esp + 0x90], edi
mov dword [esp + 0x28], eax
movsd qword [esp + 0x20], xmm0
test eax, eax
mov ebx, dword [esp + 0x24]
lea ecx, [ebx + eax]
mov dword [esp + 0x30], ecx
je 0x4cf6e0
movzx eax, byte [ebx]
test al, al
js 0x4cf700
inc ebx
mov edi, eax
jmp 0x4cf750
xor edi, edi
mov dword [esp + 0x1c], 0
xor edx, edx
mov dword [esp], 0
xor esi, esi
jmp 0x4cf778
movzx edx, byte [ebx + 1]
mov edi, eax
and edi, 0x1f
and edx, 0x3f
cmp al, 0xdf
jbe 0x4cf748
movzx ecx, byte [ebx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp al, 0xf0
jb 0x4cfaca
movzx eax, byte [ebx + 3]
and edi, 7
shl ecx, 6
add ebx, 4
shl edi, 0x12
and eax, 0x3f
or eax, ecx
or edi, eax
cmp edi, 0xffff
jbe 0x4cf750
jmp 0x4cfade
shl edi, 6
add ebx, 2
or edi, edx
mov eax, 1
xor edx, edx
mov esi, dword [esp + 0x30]
mov ecx, 0xffffffff
mov dword [esp], ebx
sub esi, ebx
add esi, 3
cmovb esi, ecx
shr esi, 2
add esi, eax
mov ax, 1
mov dword [esp + 0x1c], eax
cmp esi, 4
mov eax, 3
mov dword [esp + 4], edx
cmovb esi, eax
cmp esi, 0x3ffffffe
ja 0x4cfc7c
lea ebx, [esi + esi + 2]
test ebx, ebx
js 0x4cfc7c
push 2
push ebx
call fcn.00403b10
add esp, 8
test eax, eax
je 0x4cfc83
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp]
inc esi
mov word [eax], di
mov edi, 1
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 8], esi
inc ecx
mov dword [esp + 0x48], ecx
jmp 0x4cf7f1
mov dword [esp + 4], ecx
mov ecx, esi
mov esi, eax
mov eax, dword [esp + 0x4c]
mov word [eax + edi*2], cx
inc edi
mov edx, dword [esp + 4]
test ebx, ebx
je 0x4cf850
test dx, dx
je 0x4cf820
mov dword [esp + 0x4c], eax
mov eax, esi
xor ecx, ecx
mov esi, edx
cmp edi, dword [esp + 8]
jne 0x4cf7e0
jmp 0x4cf910
cmp ebx, dword [esp + 0x30]
je 0x4cf850
movzx ecx, byte [ebx]
mov dword [esp + 0x4c], eax
test cl, cl
js 0x4cf885
mov eax, esi
inc ebx
mov esi, ecx
xor ecx, ecx
cmp edi, dword [esp + 8]
jne 0x4cf7e0
jmp 0x4cf910
cmp word [esp + 0x1c], 1
jne 0x4cfa30
mov dword [esp + 4], edx
xor ecx, ecx
cmp edi, esi
mov ebx, 0
mov edx, 0
mov dword [esp + 8], esi
mov dword [esp + 0x1c], 0
jne 0x4cf7ec
jmp 0x4cf93a
mov dword [esp], ebx
movzx ebx, byte [ebx + 1]
mov edx, ecx
and edx, 0x1f
and ebx, 0x3f
cmp cl, 0xdf
jbe 0x4cf8f2
mov eax, ebx
mov ebx, dword [esp]
mov dword [esp + 0x18], edx
shl eax, 6
movzx ebx, byte [ebx + 2]
and ebx, 0x3f
or ebx, eax
cmp cl, 0xf0
mov dword [esp + 4], ebx
jb 0x4cf9ef
mov ebx, dword [esp]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 4]
movzx ecx, byte [ebx + 3]
and edx, 7
shl eax, 6
add ebx, 4
shl edx, 0x12
and ecx, 0x3f
or ecx, eax
or edx, ecx
mov ecx, edx
mov eax, esi
cmp ecx, 0xffff
jbe 0x4cf834
jmp 0x4cfa0e
mov ecx, dword [esp]
shl edx, 6
mov eax, esi
or edx, ebx
mov esi, edx
add ecx, 2
mov ebx, ecx
xor ecx, ecx
cmp edi, dword [esp + 8]
jne 0x4cf7e0
nop
mov edx, dword [esp + 0x30]
mov eax, 0xffffffff
sub edx, ebx
add edx, 3
cmovb edx, eax
shr edx, 2
cmp cx, 1
mov dword [esp + 4], ecx
mov ecx, esi
sbb edx, 0xffffffff
cmp word [esp + 0x1c], 1
sbb edx, 0xffffffff
inc edx
add edx, edi
jb 0x4cfc61
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
add eax, eax
cmp eax, edx
mov esi, eax
ja 0x4cf955
mov esi, edx
cmp esi, 5
mov dword [esp], ebx
jae 0x4cf962
mov esi, 4
xor ebx, ebx
cmp esi, 0x40000000
lea edx, [esi + esi]
mov dword [esp + 0x18], ecx
setb bl
add ebx, ebx
cmp dword [esp + 8], 0
je 0x4cf990
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
mov eax, 2
jmp 0x4cf992
xor eax, eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x50]
lea ecx, [esp + 0x34]
push eax
push ebx
call fcn.004996d0
add esp, 8
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x38]
je 0x4cf9d7
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp]
cmp ecx, 0x80000001
jne 0x4cfc5d
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x18]
jmp 0x4cf7ec
mov ebx, dword [esp]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], esi
jmp 0x4cf7ec
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp]
shl ecx, 0xc
add ebx, 3
add ecx, dword [esp + 4]
mov eax, esi
cmp ecx, 0xffff
jbe 0x4cf834
add ecx, 0xffff0000
mov edx, ecx
and ecx, 0x3ff
shr edx, 0xa
or ecx, 0xdc00
or edx, 0xd800
jmp 0x4cf806
movsd xmm0, qword [esp + 0xc]
mov dword [esp + 0x80], edi
movsd qword [esp + 0x78], xmm0
mov esi, dword [esp + 0x7c]
push 0
push 0
push 0x10000
push 0x10000
push 1
mov edi, dword [esp + 0xa4]
push edi
push dword [esp + 0xa4]
push esi
call fcn.0053320c
mov ebx, eax
cmp eax, 0xffffffff
jne 0x4cfb63
call fcn.00533304
cmp dword [esp + 0x48], 0xa
jge 0x4cfb09
cmp eax, 5
jne 0x4cfaa0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x44], eax
jmp 0x4cfaab
test edi, edi
je 0x4cfb09
xor edi, edi
cmp eax, 0x57
jne 0x4cfb09
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4cf590
add eax, eax
push 2
push eax
push esi
call fcn.00403b20
add esp, 0xc
jmp 0x4cf590
shl edi, 0xc
add ebx, 3
or edi, ecx
cmp edi, 0xffff
jbe 0x4cf750
add edi, 0xffff0000
mov eax, 2
mov ecx, edi
and edi, 0x3ff
shr ecx, 0xa
or edi, 0xdc00
or ecx, 0xd800
mov edx, edi
mov edi, ecx
jmp 0x4cf757
mov ecx, dword [esp + 0x2c]
movsd xmm0, qword [0xa4a620]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x78]
movsd qword [ecx], xmm0
test eax, eax
je 0x4cfb32
add eax, eax
push 2
push eax
push esi
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4cfb4f
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push dword [esp + 0x2c]
call fcn.00403b20
add esp, 0xc
cmp ebx, 0xffffffff
je 0x4cfc1c
push ebx
call fcn.005331c4
jmp 0x4cfc1c
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4cfb79
add eax, eax
push 2
push eax
push esi
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x50], 0
mov dword [esp + 0x6c], 0
mov word [esp + 0x70], 0
xorps xmm0, xmm0
mov dword [esp + 0x34], 0xc
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 1
mov byte [esp + 0x6d], al
xor al, 1
mov byte [esp + 0x6c], al
lea eax, [esp + 0x34]
movups xmmword [esp + 0x58], xmm0
mov dword [esp + 0x68], eax
mov edx, edi
lea eax, [esp + 0x50]
lea ecx, [esp + 0xc]
push eax
push dword [esp + 0x2c]
call fcn.004c96d0
add esp, 8
movzx eax, byte [esp + 0xc]
cmp eax, 4
jne 0x4cfc24
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x20]
mov dword [ecx], 0
test eax, eax
je 0x4cfc1c
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push edi
call fcn.00403b20
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx ecx, byte [esp + 0xf]
movzx edx, word [esp + 0xd]
mov esi, dword [esp + 0x2c]
shl ecx, 0x10
or edx, ecx
mov ecx, dword [esp + 0x10]
shl edx, 8
or edx, eax
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov dword [esi], 1
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4cfb3a
jmp 0x4cfb4f
test ecx, ecx
jne 0x4cfc6c
mov dword [esp + 0x14], edi
call fcn.00506b80
jmp 0x4cfc8e
mov dword [esp + 0x14], edi
push ecx
push eax
call fcn.00506bc0
add esp, 8
jmp 0x4cfc8e
call fcn.00506b80
jmp 0x4cfc8e
push 2
push ebx
call fcn.00506bc0
add esp, 8
ud2