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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd4
mov esi, dword [esp + 0xec]
call 0x4ca4e6
pop eax
test esi, esi
js 0x4ca510
mov ebp, edx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xc], ecx
je 0x4ca512
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, esi
call fcn.0049d570
test eax, eax
mov ebx, esi
jne 0x4ca519
ud2
mov eax, 1
mov ebx, esi
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
movsd xmm0, qword [ebp]
mov edi, dword [esp + 0xe8]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], eax
xor ebp, ebp
mov dword [esp + 0x70], 0
movd xmm2, esi
movd xmm1, ecx
lea eax, [edi + ebx]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x8c], edx
shufps xmm2, xmm0, 0xd4
unpcklps xmm0, xmm1
mov dword [esp], eax
shufps xmm0, xmm2, 0x21
movups xmmword [esp + 0x74], xmm0
mov dword [esp + 0x84], edx
mov byte [esp + 0x88], 0
jmp 0x4ca590
lea edi, [edx + 1]
mov ebp, edi
sub ebp, edx
add ebp, esi
cmp eax, 0x21
mov eax, ebp
jae 0x4ca5fc
cmp edi, dword [esp]
mov edx, edi
mov esi, ebp
je 0x4ca5f5
movzx eax, byte [edx]
test al, al
jns 0x4ca580
movzx ebx, byte [edx + 1]
mov ecx, eax
and ecx, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x4ca5db
mov ebp, esi
movzx esi, byte [edx + 2]
shl ebx, 6
and esi, 0x3f
or esi, ebx
cmp al, 0xf0
jb 0x4ca5e7
movzx eax, byte [edx + 3]
and ecx, 7
shl esi, 6
lea edi, [edx + 4]
shl ecx, 0x12
and eax, 0x3f
or eax, esi
or eax, ecx
jmp 0x4ca5f1
shl ecx, 6
lea edi, [edx + 2]
or ecx, ebx
mov eax, ecx
jmp 0x4ca583
shl ecx, 0xc
lea edi, [edx + 3]
or esi, ecx
mov eax, esi
mov esi, ebp
jmp 0x4ca583
mov edi, dword [esp]
xor ebp, ebp
mov eax, esi
mov ebx, dword [esp]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], esi
mov dword [esp + 0x14], edi
jmp 0x4ca62c
lea ebx, [esi - 1]
cmp ecx, 0x21
jae 0x4ca6ac
cmp edi, ebx
je 0x4ca6b7
movsx ecx, byte [ebx - 1]
mov esi, ebx
test ecx, ecx
jns 0x4ca620
movzx ebx, byte [esi - 2]
cmp bl, 0xc0
jge 0x4ca675
movzx eax, byte [esi - 3]
cmp al, 0xc0
mov dword [esp + 0x10], eax
jge 0x4ca681
lea edi, [esi - 4]
mov dword [esp + 4], edi
movzx edi, byte [esi - 4]
and edi, 7
shl edi, 6
mov dword [esp + 8], edi
mov edi, dword [esp + 0x10]
and edi, 0x3f
add edi, dword [esp + 8]
jmp 0x4ca68f
lea edi, [esi - 2]
and ebx, 0x1f
mov dword [esp + 4], edi
jmp 0x4ca697
lea edi, [esi - 3]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x10]
and edi, 0xf
shl edi, 6
and ebx, 0x3f
or ebx, edi
mov edi, dword [esp + 0x14]
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
mov ebx, dword [esp + 4]
cmp ecx, 0x21
jb 0x4ca62c
mov ebp, dword [esp + 0xb8]
sub ebp, edi
add ebp, esi
xor eax, eax
cmp edx, dword [esp]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xec]
cmove edx, eax
mov eax, dword [esp + 0xe8]
cmp dword [esp + 0x18], 0
lea eax, [eax + edx]
mov dword [esp + 4], eax
je 0x4ca7cd
mov eax, ebp
sub eax, edx
cmp eax, ecx
jae 0x4ca701
push 1
push dword [esp + 0x1c]
mov eax, dword [esp + 0x94]
call dword [eax + 0x14]
add esp, 8
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 4]
mov edi, 0x2600
add eax, ebp
jmp 0x4ca739
shl esi, 6
add edx, 2
or esi, ecx
mov ebx, esi
cmp ebx, 0xd
ja 0x4ca739
nop word cs:[eax + eax]
nop
bt edi, ebx
jb 0x4ca7ba
cmp edx, eax
je 0x4ca7cd
movzx ebx, byte [edx]
test bl, bl
js 0x4ca750
inc edx
cmp ebx, 0xd
jbe 0x4ca730
jmp 0x4ca739
movzx ecx, byte [edx + 1]
mov esi, ebx
and esi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x4ca715
movzx edi, byte [edx + 2]
shl ecx, 6
and edi, 0x3f
or edi, ecx
cmp bl, 0xf0
jb 0x4ca79d
movzx ebx, byte [edx + 3]
and esi, 7
shl edi, 6
shl esi, 0x12
and ebx, 0x3f
or ebx, edi
mov edi, 0x2600
or ebx, esi
cmp ebx, 0x110000
je 0x4ca7cd
add edx, 4
cmp ebx, 0xd
jbe 0x4ca730
jmp 0x4ca739
shl esi, 0xc
add edx, 3
or edi, esi
mov ebx, edi
mov edi, 0x2600
cmp ebx, 0xd
jbe 0x4ca730
jmp 0x4ca739
push 9
push dword [esp + 0x1c]
mov eax, dword [esp + 0x94]
call dword [eax + 0x14]
add esp, 8
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 4]
add eax, ebp
mov ebp, eax
mov eax, 0x2600
jmp 0x4ca814
inc ecx
cmp edx, 0xd
ja 0x4ca8a0
mov esi, 0x110000
bt eax, edx
jae 0x4ca8a0
cmp esi, 0x110000
jne 0x4ca8ae
cmp ecx, ebp
je 0x4caac1
movzx edx, byte [ecx]
test dl, dl
jns 0x4ca7f0
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4ca86f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4ca884
movzx edx, byte [ecx + 3]
and esi, 7
shl edi, 6
shl esi, 0x12
and edx, 0x3f
or edx, edi
or edx, esi
cmp edx, 0x110000
je 0x4caac1
add ecx, 4
cmp edx, 0xd
jbe 0x4ca7fa
jmp 0x4ca8a0
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4ca7fa
jmp 0x4ca8a0
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4ca7fa
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4ca814
mov ecx, dword [esp + 4]
mov eax, 0x2600
jmp 0x4ca8e4
inc ecx
cmp edx, 0xd
ja 0x4ca970
mov esi, 0x110000
bt eax, edx
jae 0x4ca970
cmp esi, 0x110000
jne 0x4ca97e
cmp ecx, ebp
je 0x4caac1
movzx edx, byte [ecx]
test dl, dl
jns 0x4ca8c0
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4ca93f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4ca954
movzx edx, byte [ecx + 3]
and esi, 7
shl edi, 6
shl esi, 0x12
and edx, 0x3f
or edx, edi
or edx, esi
cmp edx, 0x110000
je 0x4caac1
add ecx, 4
cmp edx, 0xd
jbe 0x4ca8ca
jmp 0x4ca970
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4ca8ca
jmp 0x4ca970
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4ca8ca
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4ca8e4
and esi, 0xffffffdf
add esi, 0xffffffbf
cmp esi, 0x19
ja 0x4caac1
mov dword [esp], ebp
mov ebp, dword [esp + 4]
lea ebx, [esp + 0x68]
mov edi, 0x2600
jmp 0x4ca9c0
mov edx, eax
or edx, 0x20
cmp ecx, 0x1a
mov ecx, ebx
cmovae edx, eax
call fcn.00409380
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebp, dword [esp]
je 0x4cac83
movzx eax, byte [ebp]
test al, al
js 0x4ca9e0
inc ebp
cmp eax, 0xd
jbe 0x4caa35
jmp 0x4caa60
movzx esi, byte [ebp + 1]
mov ecx, eax
and ecx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4caa3c
movzx edx, byte [ebp + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x4caa4d
movzx eax, byte [ebp + 3]
and ecx, 7
shl edx, 6
add ebp, 4
shl ecx, 0x12
and eax, 0x3f
or eax, edx
or eax, ecx
cmp eax, 0x110000
je 0x4cac86
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0xd
ja 0x4caa60
bt edi, eax
jb 0x4ca9c0
jmp 0x4caa60
shl ecx, 6
add ebp, 2
or ecx, esi
mov eax, ecx
cmp eax, 0xd
jbe 0x4caa35
jmp 0x4caa60
shl ecx, 0xc
add ebp, 3
or edx, ecx
mov eax, edx
cmp eax, 0xd
jbe 0x4caa35
nop dword [eax]
cmp eax, 0x110000
je 0x4ca9c0
lea ecx, [eax - 0x61]
lea esi, [eax - 0x30]
cmp ecx, 0x1a
lea ecx, [eax - 0x41]
setb dl
cmp ecx, 0x1a
setb dh
or dh, dl
cmp esi, 0xa
setb dl
or dl, dh
jne 0x4ca99f
lea edx, [eax - 0x2d]
cmp edx, 2
jb 0x4ca99f
cmp eax, 0x2b
je 0x4ca99f
cmp eax, 0x3a
je 0x4cac94
mov dword [esp + 0x70], 0
mov ebp, dword [esp]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x40], 0
je 0x4cac1d
mov ecx, dword [esp + 4]
mov eax, 0x2600
jmp 0x4cab04
inc ecx
cmp edx, 0xd
ja 0x4cab90
mov esi, 0x110000
bt eax, edx
jae 0x4cab90
cmp esi, 0x110000
jne 0x4cab9e
cmp ecx, ebp
je 0x4cabfc
movzx edx, byte [ecx]
test dl, dl
jns 0x4caae0
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4cab5f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4cab74
movzx edx, byte [ecx + 3]
and esi, 7
shl edi, 6
shl esi, 0x12
and edx, 0x3f
or edx, edi
or edx, esi
cmp edx, 0x110000
je 0x4cabfc
add ecx, 4
cmp edx, 0xd
jbe 0x4caaea
jmp 0x4cab90
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4caaea
jmp 0x4cab90
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4caaea
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4cab04
cmp esi, 0x23
jne 0x4cabfc
movsd xmm1, qword [esp + 0x78]
mov eax, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x80]
movsd xmm2, qword [esp + 0x68]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x1c]
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x70]
mov dword [esp + 0x3c], eax
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
push ebp
push dword [esp + 8]
push dword [esp + 0x48]
call fcn.004d0730
add esp, 0xc
jmp 0x4cac78
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x20]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov esi, edx
inc esi
je 0x4cac27
cmp esi, eax
jae 0x4cac21
cmp byte [ecx + esi], 0xbf
jg 0x4cac27
jmp 0x4ca510
mov bl, 6
jmp 0x4cac52
jne 0x4ca510
mov bl, 7
cmp eax, esi
je 0x4cac52
cmp byte [ecx + esi], 0x2f
jne 0x4cac52
test edx, edx
je 0x4cad0e
cmp edx, eax
jae 0x4cad08
cmp byte [ecx + edx], 0xbf
jg 0x4cad0e
jmp 0x4ca510
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x68], 0
mov byte [eax + 4], bl
mov dword [eax], 2
je 0x4cac78
push dword [esp + 0x6c]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
add esp, 0xd4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, dword [esp]
cmp byte [esp + 0x88], 1
jne 0x4caaae
movsd xmm1, qword [esp + 0x80]
movsd xmm0, qword [esp + 0x70]
mov eax, dword [esp + 0x88]
movsd xmm2, qword [esp + 0x78]
mov ecx, dword [esp + 0x70]
movsd qword [esp + 0x5c], xmm1
movsd xmm1, qword [esp + 0x68]
movsd qword [esp + 0x4c], xmm0
mov dword [esp + 0x64], eax
movsd qword [esp + 0x54], xmm2
add ecx, 0xfffffffe
cmp ecx, 3
movsd qword [esp + 0x44], xmm1
mov edi, dword [esp + 0x4c]
ja 0x4cad01
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x6c]
add edx, dword [ecx*4 + 0x4cb73c]
jmp edx
mov bl, 2
jmp 0x4cae32
jne 0x4ca510
call fcn.004d0990
test al, al
je 0x4cad74
mov ecx, dword [esp + 0x88]
movsd xmm1, qword [esp + 0x78]
movsd xmm0, qword [esp + 0x80]
movsd xmm2, qword [esp + 0x68]
lea edx, [esp + 0x1c]
movzx eax, al
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x70]
mov ecx, dword [esp + 0xc]
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
push dword [esp + 0x40]
push eax
push ebp
push dword [esp + 0x10]
call fcn.004cfb10
jmp 0x4cb6dc
movsd xmm1, qword [esp + 0x78]
mov eax, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x80]
movsd xmm2, qword [esp + 0x68]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x1c]
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x70]
mov dword [esp + 0x3c], eax
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
push dword [esp + 0x40]
push ebp
push dword [esp + 0xc]
jmp 0x4cb516
cmp edi, dword [esp + 0x44]
jne 0x4cae41
lea ecx, [esp + 0x44]
call fcn.00409480
mov ecx, dword [esp + 0x48]
test bl, bl
lea eax, [edi + 1]
mov byte [ecx + edi], 0x3a
mov dword [esp + 0x4c], eax
je 0x4caf2b
movzx eax, bl
mov dword [esp + 4], edi
cmp eax, 2
jne 0x4caf9a
mov eax, dword [esp + 0x64]
movsd xmm1, qword [esp + 0x54]
movsd xmm0, qword [esp + 0x5c]
movsd xmm2, qword [esp + 0x44]
mov dword [esp + 0x1c], ebp
mov ecx, 0x8fe3fc
mov edx, 2
mov dword [esp + 0xb0], eax
mov eax, dword [esp]
movsd qword [esp + 0xa0], xmm1
movsd xmm1, qword [esp + 0x4c]
movsd qword [esp + 0xa8], xmm0
movsd qword [esp + 0x90], xmm2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
movsd qword [esp + 0x98], xmm1
push eax
call fcn.004cb820
add esp, 4
test al, al
je 0x4cb0c9
movsd xmm1, qword [esp + 0x54]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
movsd xmm0, qword [esp + 0x5c]
movsd xmm2, qword [esp + 0x44]
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x1c]
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x4c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xc]
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
push edi
push 2
push esi
push eax
jmp 0x4cb6d7
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4caf66
mov eax, dword [esp]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x1c], ebp
mov ecx, 0x8fe3fc
mov edx, 2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
call fcn.004cb820
add esp, 4
test al, al
jne 0x4caf66
push 4
push esi
call dword [edi + 0x14]
add esp, 8
mov ecx, dword [esp + 0x50]
xor eax, eax
test ecx, ecx
je 0x4cb4c8
mov esi, dword [ecx + 0x20]
test esi, esi
je 0x4cb4c8
mov edx, dword [ecx + 0x14]
cmp esi, dword [ecx + 0x18]
jae 0x4cb4a0
cmp byte [edx + esi], 0xbf
jg 0x4cb4a6
jmp 0x4ca510
mov edx, 0x2600
mov edi, ebp
mov dword [esp + 8], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebp
cmp edi, dword [esp]
jne 0x4cafe7
jmp 0x4cb082
inc edi
cmp ebx, 0xd
ja 0x4cb05a
mov eax, 0x110000
bt edx, ebx
jae 0x4cb05a
cmp eax, 0x110000
jne 0x4cb067
cmp edi, dword [esp]
je 0x4cb082
movzx ebx, byte [edi]
test bl, bl
jns 0x4cafbb
movzx eax, byte [edi + 1]
mov esi, ebx
and esi, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x4cb036
movzx ecx, byte [edi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
cmp bl, 0xf0
jb 0x4cb047
movzx ebx, byte [edi + 3]
and esi, 7
shl ecx, 6
shl esi, 0x12
and ebx, 0x3f
or ebx, ecx
or ebx, esi
cmp ebx, 0x110000
je 0x4cb082
add edi, 4
cmp ebx, 0xd
jbe 0x4cafc5
jmp 0x4cb05a
shl esi, 6
add edi, 2
or esi, eax
mov ebx, esi
cmp ebx, 0xd
jbe 0x4cafc5
jmp 0x4cb05a
shl esi, 0xc
add edi, 3
or ecx, esi
mov ebx, ecx
cmp ebx, 0xd
jbe 0x4cafc5
mov eax, ebx
cmp eax, 0x110000
je 0x4cafde
cmp eax, 0x5c
je 0x4cb071
cmp eax, 0x2f
jne 0x4cb082
inc dword [esp + 0x14]
mov dword [esp + 0x10], edi
cmp edi, dword [esp]
jne 0x4cafe7
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 4]
mov edx, dword [esp + 8]
test esi, esi
setne al
cmp dword [esp + 0x14], 2
setb cl
test cl, al
je 0x4cb549
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x4cb529
cmp eax, dword [esi + 0x18]
jae 0x4cb523
cmp byte [ecx + eax], 0xbf
jg 0x4cb529
jmp 0x4ca510
mov eax, dword [esp + 0x98]
mov ebx, ebp
mov byte [esp + 0xc3], 0
mov dword [esp + 0x18], eax
mov eax, 0x2600
jmp 0x4cb0f3
mov edx, ecx
cmp edx, 0x110000
jne 0x4cb18b
cmp ebx, dword [esp]
je 0x4cb1e6
movzx ecx, byte [ebx]
test cl, cl
js 0x4cb106
inc ebx
jmp 0x4cb16f
movzx edi, byte [ebx + 1]
mov edx, ecx
and edx, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4cb151
movzx esi, byte [ebx + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp cl, 0xf0
jb 0x4cb161
movzx ecx, byte [ebx + 3]
and edx, 7
shl esi, 6
mov edi, dword [esp + 4]
shl edx, 0x12
and ecx, 0x3f
or ecx, esi
or ecx, edx
cmp ecx, 0x110000
je 0x4cb1e6
add ebx, 4
jmp 0x4cb16f
shl edx, 6
add ebx, 2
or edx, edi
mov edi, dword [esp + 4]
mov ecx, edx
jmp 0x4cb16f
mov edi, dword [esp + 4]
shl edx, 0xc
add ebx, 3
or esi, edx
mov ecx, esi
cmp ecx, 0xd
ja 0x4cb0e5
mov edx, 0x110000
bt eax, ecx
jb 0x4cb0e7
jmp 0x4cb0e5
cmp edx, 0x2f
jne 0x4cb1e6
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x90]
jne 0x4cb1a9
lea ecx, [esp + 0x90]
call fcn.00409480
mov eax, dword [esp + 0x94]
mov edx, 2
lea ecx, [esp + 0x90]
mov byte [eax + esi], 0x2f
lea eax, [esi + 1]
mov byte [esp + 0x1c], 0
mov dword [esp + 0x98], eax
push dword [esp]
push ebx
push esi
lea eax, [esp + 0x28]
push eax
call fcn.004cd160
add esp, 0x10
jmp 0x4cb40b
mov eax, dword [esp]
cmp ebp, eax
je 0x4cb400
mov eax, dword [esp + 0x18]
mov edx, 0x2600
mov dword [esp + 8], eax
mov ecx, ebp
mov edi, ebp
movzx eax, byte [edi]
test al, al
js 0x4cb210
lea ebp, [edi + 1]
mov ebx, eax
jmp 0x4cb260
movzx esi, byte [edi + 1]
mov ebx, eax
and ebx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4cb249
movzx edx, byte [edi + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x4cb253
movzx eax, byte [edi + 3]
and ebx, 7
shl edx, 6
lea ebp, [edi + 4]
shl ebx, 0x12
and eax, 0x3f
or eax, edx
or ebx, eax
jmp 0x4cb25b
shl ebx, 6
lea ebp, [edi + 2]
or ebx, esi
jmp 0x4cb260
shl ebx, 0xc
lea ebp, [edi + 3]
or ebx, edx
mov edx, 0x2600
cmp ebx, 0xd
ja 0x4cb278
bt edx, ebx
jae 0x4cb278
cmp ebp, dword [esp]
mov edi, ebp
mov eax, ebp
jne 0x4cb202
jmp 0x4cb400
mov esi, 1
cmp ebx, 0x80
jb 0x4cb2a0
mov esi, 2
cmp ebx, 0x800
jb 0x4cb2a0
cmp ebx, 0x10000
mov esi, 4
sbb esi, 0
mov eax, dword [esp]
sub eax, edi
cmp esi, eax
jae 0x4cb2b4
cmp byte [edi + esi], 0xbf
jg 0x4cb2ba
jmp 0x4ca510
jne 0x4ca510
cmp ebx, 0x23
je 0x4cb2c4
cmp ebx, 0x3f
jne 0x4cb2d4
cmp byte [esp + 0xb0], 0
mov eax, ecx
je 0x4cb400
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
push dword [esp]
push ebp
push ebx
call fcn.004d0c60
add esp, 0xc
mov edx, dword [esp + 8]
jmp 0x4cb343
inc edi
dec esi
mov dword [esp + 0x10], edi
mov ebx, esi
lea edi, [eax + eax*2 + str._00_01_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_11_12_13_14_15_16_17_18_19_1A_1B_1C_1D_1E_1F_20_21_22_23_24_25_26_27_28_29_2A_2B_2C_2D_2E_2F_30_31_32_33_34_35_36_37_38_39_3A_3B_3C_3D_3E_3F_40_41_42_43_44_45_46_47_48_49_4A_4B_4C_4D_4E_4F_50_51_52_53_54_55_56_57_58_59_5A_5B_5C_5D_5E_5F_60_61_62_63_64_65_66_67_68_69_6A_6B_6C_6D_6E_6F_70_71_72_73_74_75_76_77_78_79_7A_7B_7C_7D_7E_7F_80_81_82_83_84_85_86_87_88_89_8A_8B_8C_8D_8E_8F_90_91_92_93_94_95_96_97_98_99_9A_9B_9C_9D_9E_9F_A0_A1_A2_A3_A4_A5_A6_A7_A8_A9_AA_AB_AC_AD_AE_AF_B0_B1_B2_B3_B4_B5_B6_B7_B8_B9_BA_BB_BC_BD_BE_BF_C0_C1_C2_C3_C4_C5_C6_C7_C8_C9_CA_CB_CC_CD_CE_CF_D0_D1_D2_D3_D4_D5_D6_D7_D8_D9_DA_DB_DC_DD_DE_DF_E0_E1_E2_E3_E4_E5_E6_E7_E8_E9_EA_EB_EC_ED_EE_EF_F0_F1_F2_F3_F4_F5_F6_F7_F8_F9_FA_FB_FC_FD_FE_FF]
mov esi, 3
mov eax, dword [esp + 0x90]
sub eax, edx
cmp eax, esi
jb 0x4cb3cc
mov eax, dword [esp + 0x94]
add eax, edx
push esi
push edi
push eax
mov edi, esi
mov esi, edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, esi
add esp, 0xc
add edx, edi
mov edi, dword [esp + 0x10]
mov esi, ebx
mov dword [esp + 0x98], edx
test esi, esi
je 0x4cb3ec
movzx eax, byte [edi]
test al, al
js 0x4cb2f5
mov ecx, eax
shr ecx, 5
mov ecx, dword [ecx*4 + 0x8fe3e0]
bt ecx, eax
jb 0x4cb2f5
mov dword [esp + 8], edx
mov edx, 1
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], edi
mov ebx, esi
sub ebx, edx
je 0x4cb3c1
movsx ecx, byte [edi + edx]
mov eax, edx
test ecx, ecx
js 0x4cb3a4
mov edx, ecx
mov edi, esi
shr edx, 5
mov esi, dword [edx*4 + 0x8fe3e0]
lea edx, [eax + 1]
bt esi, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
jae 0x4cb378
mov edx, dword [esp + 8]
lea ecx, [eax - 1]
cmp ecx, esi
jae 0x4ca510
lea ecx, [edi + eax]
mov esi, eax
mov dword [esp + 0x10], ecx
jmp 0x4cb309
mov edx, dword [esp + 8]
xor ebx, ebx
jmp 0x4cb309
lea ecx, [esp + 0x90]
push 1
push 1
push esi
call fcn.004f2050
add esp, 0xc
mov edx, dword [esp + 0x98]
jmp 0x4cb31a
cmp ebp, dword [esp]
mov dword [esp + 8], edx
mov eax, ebp
mov edx, 0x2600
jne 0x4cb1fe
mov edx, dword [esp]
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x18]
movsd xmm1, qword [esp + 0xa0]
mov ecx, dword [esp + 0xb0]
movsd xmm0, qword [esp + 0xa8]
movsd xmm2, qword [esp + 0x90]
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x98]
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
sub esp, 0x2c
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
lea eax, [esp + 0xef]
lea edx, [esp + 0x48]
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], esi
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp + 0x18], 0
mov dword [esp], 2
mov dword [esp + 0x14], eax
call fcn.004ce1f0
add esp, 0x2c
jmp 0x4cac78
jne 0x4ca510
cmp esi, 4
jne 0x4cb4c8
mov edx, dword [edx]
xor ebx, ebx
bswap edx
cmp edx, 0x66696c66
setae bl
xor eax, eax
cmp edx, 0x66696c65
sbb ebx, 0
cmove eax, ecx
mov dword [esp + 0x4c], 0
lea edx, [esp + 0x1c]
mov ecx, dword [esp + 0x64]
movsd xmm0, qword [esp + 0x5c]
movsd xmm1, qword [esp + 0x54]
movsd xmm2, qword [esp + 0x4c]
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x34], xmm0
movsd xmm0, qword [esp + 0x44]
mov ecx, dword [esp + 0xc]
movsd qword [esp + 0x2c], xmm1
movsd qword [esp + 0x24], xmm2
movsd qword [esp + 0x1c], xmm0
push eax
push dword [esp + 4]
push ebp
call fcn.004ce560
add esp, 0xc
jmp 0x4cac78
jne 0x4ca510
cmp edi, 0xffffffff
je 0x4ca510
cmp eax, edi
jne 0x4cb549
push edi
push edx
push ecx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4cb6e4
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4cb68c
mov eax, dword [esp + 0x60]
mov edi, 0x2600
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], eax
nop word [eax + eax]
cmp ebp, dword [esp]
je 0x4cb64b
movzx ebx, byte [ebp]
test bl, bl
js 0x4cb5aa
inc ebp
cmp ebx, 0x2e
jg 0x4cb601
cmp ebx, 0xd
ja 0x4cb64b
bt edi, ebx
jb 0x4cb580
jmp 0x4cb64b
movzx edx, byte [ebp + 1]
mov eax, ebx
and eax, 0x1f
and edx, 0x3f
cmp bl, 0xdf
jbe 0x4cb5f2
movzx ecx, byte [ebp + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x4cb636
movzx ebx, byte [ebp + 3]
and eax, 7
shl ecx, 6
shl eax, 0x12
and ebx, 0x3f
or ebx, ecx
or ebx, eax
cmp ebx, 0x110000
je 0x4cb64b
add ebp, 4
cmp ebx, 0x2e
jle 0x4cb597
jmp 0x4cb601
shl eax, 6
add ebp, 2
or eax, edx
mov ebx, eax
cmp ebx, 0x2e
jle 0x4cb597
cmp ebx, 0x2f
je 0x4cb617
cmp ebx, 0x110000
je 0x4cb580
cmp ebx, 0x5c
jne 0x4cb64b
lea ecx, [esp + 0x1c]
mov edx, ebx
call fcn.00409380
cmp ebx, 0x2f
je 0x4cb580
cmp ebx, 0x5c
je 0x4cb580
jmp 0x4cb64b
shl eax, 0xc
add ebp, 3
or ecx, eax
mov ebx, ecx
cmp ebx, 0x2e
jle 0x4cb597
jmp 0x4cb601
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x24], 2
mov bl, 1
jne 0x4cb664
cmp word [eax], 0x2f2f
setne bl
mov edi, dword [esp + 4]
test ecx, ecx
je 0x4cb67b
push eax
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
test bl, bl
je 0x4cb68c
push 3
push esi
mov eax, dword [esp + 0x1c]
call dword [eax + 0x14]
add esp, 8
movsd xmm1, qword [esp + 0x54]
mov eax, dword [esp + 0x64]
movsd xmm0, qword [esp + 0x5c]
movsd xmm2, qword [esp + 0x44]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x1c]
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x4c]
mov dword [esp + 0x3c], eax
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
push edi
push 1
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004cb9f0
add esp, 0x10
jmp 0x4cac78
mov dword [esp + 0x4c], 0
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x1c]
movsd xmm0, qword [esp + 0x5c]
mov eax, dword [esp + 0x64]
movsd xmm1, qword [esp + 0x54]
movsd xmm2, qword [esp + 0x4c]
movsd qword [esp + 0x34], xmm0
movsd xmm0, qword [esp + 0x44]
mov dword [esp + 0x3c], eax
movsd qword [esp + 0x2c], xmm1
movsd qword [esp + 0x24], xmm2
movsd qword [esp + 0x1c], xmm0
push esi
push 1
push dword [esp + 8]
push ebp
jmp 0x4cad6a