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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov esi, esp
mov dword [esi + 0x78], ebp
lea eax, [esi + 0x80]
mov dword [esi + 0x3c], ecx
xorps xmm0, xmm0
lea edi, [esi + 0x10]
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x4a9dd0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
movups xmmword [edi], xmm0
push 0x10
pop edx
mov ecx, edi
call fcn.00431a13
test eax, eax
jne 0x4208b7
movdqu xmm0, xmmword [esi + 0x10]
movdqa xmmword [esi + 0x50], xmm0
pextrw ebx, xmm0, 2
mov al, byte [esi + 0x56]
mov dl, byte [esi + 0x58]
mov cl, byte [esi + 0x57]
mov ah, byte [esi + 0x5f]
movd dword [esi + 0x10], xmm0
mov word [esi + 0x14], bx
psrldq xmm0, 9
lea ebx, [esi + 0x6c]
and al, 0xf
and dl, 0x3f
or al, 0x40
or dl, 0x80
mov byte [esi + 0x16], al
mov byte [esi + 0x17], cl
lea ecx, [esi + 0x44]
mov byte [esi + 0x18], dl
lea edx, [esi + 0x20]
mov byte [esi + 0x1f], ah
pextrw eax, xmm0, 2
movd dword [esi + 0x19], xmm0
mov dword [ecx], edi
xor edi, edi
mov dword [edx], 0x500cf4
mov dword [ecx + 4], 0x407994
mov word [esi + 0x1d], ax
inc edi
mov dword [edx + 4], edi
and dword [edx + 0x10], 0
mov dword [edx + 8], ecx
mov ecx, ebx
mov dword [edx + 0xc], edi
call fcn.00407b77
mov edx, dword [ebx]
mov eax, ebx
lea ebx, [esi + 0x44]
mov ecx, ebx
mov dword [esi + 0x38], edx
push 0
push 0x500c58
push edi
push 0x4e5001
push dword [eax + 8]
call fcn.00407ba5
add esp, 0x14
mov eax, dword [ebx]
mov ebx, dword [ebx + 8]
xor edi, edi
test ebx, ebx
mov dword [esi + 8], eax
mov dword [esi + 4], ebx
je 0x4206b8
js 0x4208ed
mov al, byte [0x53cbf0]
xor edx, edx
mov ecx, ebx
inc edx
call fcn.00425bd0
test eax, eax
je 0x4208f4
cmp ebx, 8
mov edi, 0
jb 0x4206c2
movaps xmm0, xmmword [0x4ce060]
movdqa xmm3, xmmword [0x4ce090]
xor edi, edi
mov dword [esi], eax
mov eax, dword [esi + 8]
movq xmm4, qword [eax + edi]
movdqa xmm5, xmm4
movd ecx, xmm4
shufps xmm5, xmm4, 0x55
movd eax, xmm5
mov edx, eax
or edx, ecx
test edx, 0x80808080
jne 0x4206bd
mov ebx, ecx
mov edx, ecx
shr ecx, 8
shr ebx, 0x10
movd xmm5, ecx
mov ecx, eax
shr edx, 0x18
movd xmm6, ebx
mov ebx, eax
movd xmm7, edx
shr eax, 8
shr ecx, 0x18
punpcklqdq xmm5, xmm4
shr ebx, 0x10
movd xmm1, eax
punpcklqdq xmm7, xmm6
movd xmm6, ecx
mov eax, dword [esi]
lea ecx, [edi + 8]
movd xmm2, ebx
shufps xmm1, xmm4, 0xd4
shufps xmm5, xmm7, 0x22
mov ebx, dword [esi + 4]
punpcklqdq xmm6, xmm2
andps xmm5, xmm0
shufps xmm1, xmm6, 0x22
andps xmm1, xmm0
packuswb xmm5, xmm1
packuswb xmm5, xmm5
movdqa xmm1, xmm5
paddb xmm1, xmmword [0x4ce070]
movdqa xmm2, xmm1
pmaxub xmm2, xmmword [0x4ce080]
pcmpeqb xmm2, xmm1
pandn xmm2, xmm3
pxor xmm2, xmm5
movq qword [eax + edi], xmm2
add edi, 0x10
cmp edi, ebx
mov edi, ecx
jbe 0x4205f6
mov edi, ecx
jmp 0x4206c2
xor eax, eax
inc eax
jmp 0x4206c2
mov ebx, dword [esi + 4]
mov eax, dword [esi]
cmp edi, ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], edi
jne 0x42070b
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x3c]
movsd xmm0, qword [esi + 0x20]
mov edx, dword [esi + 0x48]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov ecx, dword [esi + 8]
call fcn.004448bb
mov edx, dword [esi + 0x70]
mov ecx, dword [esi + 0x38]
call fcn.004448bb
mov eax, dword [esi + 0x80]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 8]
add dword [esi + 4], eax
add edi, eax
mov eax, edi
mov cl, byte [eax]
movzx edx, cl
test cl, cl
js 0x420724
inc eax
mov dword [esi + 0xc], eax
jmp 0x420790
movzx edi, byte [eax + 1]
and edx, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x420771
mov ebx, eax
movzx eax, byte [eax + 2]
shl edi, 6
and eax, 0x3f
or eax, edi
cmp cl, 0xf0
jb 0x42077b
movzx ecx, byte [ebx + 3]
and edx, 7
shl eax, 6
mov edi, edx
shl edi, 0x12
and ecx, 0x3f
or ecx, eax
mov edx, ecx
or edx, edi
cmp edx, 0x110000
je 0x4206cf
mov eax, ebx
add eax, 4
jmp 0x420785
shl edx, 6
add eax, 2
or edx, edi
jmp 0x420785
shl edx, 0xc
add ebx, 3
or edx, eax
mov eax, ebx
cmp edx, 0x80
mov dword [esi + 0xc], eax
jae 0x4207c7
mov eax, edx
xor ecx, ecx
add al, 0x9f
cmp al, 0x1a
setb cl
and dword [esi + 0x88], 0
shl ecx, 5
xor edx, ecx
and dword [esi + 0x88], 0
lea ecx, [esi + 0x20]
call fcn.004264b0
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 4]
jne 0x420715
jmp 0x4206cf
mov dword [esi], edx
xor edi, edi
mov eax, 0x5db
mov edx, 0x5db
mov ecx, dword [esi]
shr eax, 1
xor ebx, ebx
add eax, edi
cmp dword [eax*8 + 0x4d5210], ecx
mov ecx, 0xff
setne bl
cmovb ebx, ecx
cmp bl, 1
je 0x420806
movzx edi, bl
cmp edi, 0xff
jne 0x420813
inc eax
mov edi, eax
mov eax, edx
jmp 0x420808
mov edx, eax
sub eax, edi
ja 0x4207d5
mov edx, dword [esi]
xorps xmm0, xmm0
jmp 0x420859
mov eax, dword [eax*8 + 0x4d5214]
cmp eax, 0x110000
je 0x42083a
mov ecx, eax
xorps xmm0, xmm0
xor ecx, 0xd800
add ecx, 0xffef0000
cmp ecx, 0xffef07ff
ja 0x420857
and eax, 0x3fffff
imul ecx, eax, 0xc
mov eax, dword [ecx + 0x4d80e8]
cmp eax, 0x110000
je 0x42080c
movsd xmm0, qword [ecx + 0x4d80ec]
mov edx, eax
movd eax, xmm0
test eax, eax
je 0x4207a7
pshufd xmm0, xmm0, 0x55
and dword [esi + 0x88], 0
mov dword [esi], eax
movd eax, xmm0
test eax, eax
je 0x4208a0
lea ecx, [esi + 0x20]
mov dword [esi + 0x40], eax
call fcn.004264b0
mov edx, dword [esi]
lea ecx, [esi + 0x20]
call fcn.004264b0
mov edx, dword [esi + 0x40]
lea ecx, [esi + 0x20]
call fcn.004264b0
jmp 0x4207b6
lea ecx, [esi + 0x20]
call fcn.004264b0
mov edx, dword [esi]
lea ecx, [esi + 0x20]
call fcn.004264b0
jmp 0x4207b6
xor edx, edx
lea ecx, [esi + 0x44]
lea edi, [esi + 0x6c]
mov dword [edi], ecx
mov dword [ecx], eax
lea ecx, [esi + 0x20]
inc edx
mov dword [edi + 4], 0x4318da
mov dword [ecx], 0x4f019c
mov dword [ecx + 4], edx
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], edx
mov edx, 0x4f021c
call fcn.004c8740
ud2
call fcn.00425d50
ud2
xor ecx, ecx
mov edx, ebx
inc ecx
call fcn.004c8580
ud2