Function at 0x4c3b20
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 0x4c3b36
pop eax
test esi, esi
js 0x4c3b60
mov ebp, edx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xc], ecx
je 0x4c3b62
movzx eax, byte [0xfd520d]
xor ecx, ecx
mov edx, esi
call fcn.00494530
test eax, eax
mov ebx, esi
jne 0x4c3b69
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 0x4c3be0
lea edi, [edx + 1]
mov ebp, edi
sub ebp, edx
add ebp, esi
cmp eax, 0x21
mov eax, ebp
jae 0x4c3c4c
cmp edi, dword [esp]
mov edx, edi
mov esi, ebp
je 0x4c3c45
movzx eax, byte [edx]
test al, al
jns 0x4c3bd0
movzx ebx, byte [edx + 1]
mov ecx, eax
and ecx, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x4c3c2b
mov ebp, esi
movzx esi, byte [edx + 2]
shl ebx, 6
and esi, 0x3f
or esi, ebx
cmp al, 0xf0
jb 0x4c3c37
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 0x4c3c41
shl ecx, 6
lea edi, [edx + 2]
or ecx, ebx
mov eax, ecx
jmp 0x4c3bd3
shl ecx, 0xc
lea edi, [edx + 3]
or esi, ecx
mov eax, esi
mov esi, ebp
jmp 0x4c3bd3
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 0x4c3c7c
lea ebx, [esi - 1]
cmp ecx, 0x21
jae 0x4c3cfc
cmp edi, ebx
je 0x4c3d07
movsx ecx, byte [ebx - 1]
mov esi, ebx
test ecx, ecx
jns 0x4c3c70
movzx ebx, byte [esi - 2]
cmp bl, 0xc0
jge 0x4c3cc5
movzx eax, byte [esi - 3]
cmp al, 0xc0
mov dword [esp + 0x10], eax
jge 0x4c3cd1
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 0x4c3cdf
lea edi, [esi - 2]
and ebx, 0x1f
mov dword [esp + 4], edi
jmp 0x4c3ce7
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 0x4c3c7c
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 0x4c3e1d
mov eax, ebp
sub eax, edx
cmp eax, ecx
jae 0x4c3d51
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 0x4c3d89
shl esi, 6
add edx, 2
or esi, ecx
mov ebx, esi
cmp ebx, 0xd
ja 0x4c3d89
nop word cs:[eax + eax]
nop
bt edi, ebx
jb 0x4c3e0a
cmp edx, eax
je 0x4c3e1d
movzx ebx, byte [edx]
test bl, bl
js 0x4c3da0
inc edx
cmp ebx, 0xd
jbe 0x4c3d80
jmp 0x4c3d89
movzx ecx, byte [edx + 1]
mov esi, ebx
and esi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x4c3d65
movzx edi, byte [edx + 2]
shl ecx, 6
and edi, 0x3f
or edi, ecx
cmp bl, 0xf0
jb 0x4c3ded
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 0x4c3e1d
add edx, 4
cmp ebx, 0xd
jbe 0x4c3d80
jmp 0x4c3d89
shl esi, 0xc
add edx, 3
or edi, esi
mov ebx, edi
mov edi, 0x2600
cmp ebx, 0xd
jbe 0x4c3d80
jmp 0x4c3d89
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 0x4c3e64
inc ecx
cmp edx, 0xd
ja 0x4c3ef0
mov esi, 0x110000
bt eax, edx
jae 0x4c3ef0
cmp esi, 0x110000
jne 0x4c3efe
cmp ecx, ebp
je 0x4c4111
movzx edx, byte [ecx]
test dl, dl
jns 0x4c3e40
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4c3ebf
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4c3ed4
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 0x4c4111
add ecx, 4
cmp edx, 0xd
jbe 0x4c3e4a
jmp 0x4c3ef0
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4c3e4a
jmp 0x4c3ef0
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4c3e4a
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4c3e64
mov ecx, dword [esp + 4]
mov eax, 0x2600
jmp 0x4c3f34
inc ecx
cmp edx, 0xd
ja 0x4c3fc0
mov esi, 0x110000
bt eax, edx
jae 0x4c3fc0
cmp esi, 0x110000
jne 0x4c3fce
cmp ecx, ebp
je 0x4c4111
movzx edx, byte [ecx]
test dl, dl
jns 0x4c3f10
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4c3f8f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4c3fa4
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 0x4c4111
add ecx, 4
cmp edx, 0xd
jbe 0x4c3f1a
jmp 0x4c3fc0
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4c3f1a
jmp 0x4c3fc0
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4c3f1a
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4c3f34
and esi, 0xffffffdf
add esi, 0xffffffbf
cmp esi, 0x19
ja 0x4c4111
mov dword [esp], ebp
mov ebp, dword [esp + 4]
lea ebx, [esp + 0x68]
mov edi, 0x2600
jmp 0x4c4010
mov edx, eax
or edx, 0x20
cmp ecx, 0x1a
mov ecx, ebx
cmovae edx, eax
call fcn.004c33b0
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebp, dword [esp]
je 0x4c42d3
movzx eax, byte [ebp]
test al, al
js 0x4c4030
inc ebp
cmp eax, 0xd
jbe 0x4c4085
jmp 0x4c40b0
movzx esi, byte [ebp + 1]
mov ecx, eax
and ecx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4c408c
movzx edx, byte [ebp + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x4c409d
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 0x4c42d6
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0xd
ja 0x4c40b0
bt edi, eax
jb 0x4c4010
jmp 0x4c40b0
shl ecx, 6
add ebp, 2
or ecx, esi
mov eax, ecx
cmp eax, 0xd
jbe 0x4c4085
jmp 0x4c40b0
shl ecx, 0xc
add ebp, 3
or edx, ecx
mov eax, edx
cmp eax, 0xd
jbe 0x4c4085
nop dword [eax]
cmp eax, 0x110000
je 0x4c4010
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 0x4c3fef
lea edx, [eax - 0x2d]
cmp edx, 2
jb 0x4c3fef
cmp eax, 0x2b
je 0x4c3fef
cmp eax, 0x3a
je 0x4c42e4
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 0x4c426d
mov ecx, dword [esp + 4]
mov eax, 0x2600
jmp 0x4c4154
inc ecx
cmp edx, 0xd
ja 0x4c41e0
mov esi, 0x110000
bt eax, edx
jae 0x4c41e0
cmp esi, 0x110000
jne 0x4c41ee
cmp ecx, ebp
je 0x4c424c
movzx edx, byte [ecx]
test dl, dl
jns 0x4c4130
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4c41af
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4c41c4
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 0x4c424c
add ecx, 4
cmp edx, 0xd
jbe 0x4c413a
jmp 0x4c41e0
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4c413a
jmp 0x4c41e0
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4c413a
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4c4154
cmp esi, 0x23
jne 0x4c424c
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.004c9d90
add esp, 0xc
jmp 0x4c42c8
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 0x4c4277
cmp esi, eax
jae 0x4c4271
cmp byte [ecx + esi], 0xbf
jg 0x4c4277
jmp 0x4c3b60
mov bl, 6
jmp 0x4c42a2
jne 0x4c3b60
mov bl, 7
cmp eax, esi
je 0x4c42a2
cmp byte [ecx + esi], 0x2f
jne 0x4c42a2
test edx, edx
je 0x4c435e
cmp edx, eax
jae 0x4c4358
cmp byte [ecx + edx], 0xbf
jg 0x4c435e
jmp 0x4c3b60
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x68], 0
mov byte [eax + 4], bl
mov dword [eax], 2
je 0x4c42c8
push dword [esp + 0x6c]
push 0
push dword [0xfd5200]
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 0x4c40fe
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 0x4c4351
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x6c]
add edx, dword [ecx*4 + 0x4c4d8c]
jmp edx
mov bl, 2
jmp 0x4c4482
jne 0x4c3b60
call fcn.004c9ff0
test al, al
je 0x4c43c4
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.004c9170
jmp 0x4c4d2c
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 0x4c4b66
cmp edi, dword [esp + 0x44]
jne 0x4c4491
lea ecx, [esp + 0x44]
call fcn.00498280
mov ecx, dword [esp + 0x48]
test bl, bl
lea eax, [edi + 1]
mov byte [ecx + edi], 0x3a
mov dword [esp + 0x4c], eax
je 0x4c457b
movzx eax, bl
mov dword [esp + 4], edi
cmp eax, 2
jne 0x4c45ea
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, 0xfd0230
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.004c4e70
add esp, 4
test al, al
je 0x4c4719
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 0x4c4d27
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4c45b6
mov eax, dword [esp]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x1c], ebp
mov ecx, 0xfd0230
mov edx, 2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
call fcn.004c4e70
add esp, 4
test al, al
jne 0x4c45b6
push 4
push esi
call dword [edi + 0x14]
add esp, 8
mov ecx, dword [esp + 0x50]
xor eax, eax
test ecx, ecx
je 0x4c4b18
mov esi, dword [ecx + 0x20]
test esi, esi
je 0x4c4b18
mov edx, dword [ecx + 0x14]
cmp esi, dword [ecx + 0x18]
jae 0x4c4af0
cmp byte [edx + esi], 0xbf
jg 0x4c4af6
jmp 0x4c3b60
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 0x4c4637
jmp 0x4c46d2
inc edi
cmp ebx, 0xd
ja 0x4c46aa
mov eax, 0x110000
bt edx, ebx
jae 0x4c46aa
cmp eax, 0x110000
jne 0x4c46b7
cmp edi, dword [esp]
je 0x4c46d2
movzx ebx, byte [edi]
test bl, bl
jns 0x4c460b
movzx eax, byte [edi + 1]
mov esi, ebx
and esi, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x4c4686
movzx ecx, byte [edi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
cmp bl, 0xf0
jb 0x4c4697
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 0x4c46d2
add edi, 4
cmp ebx, 0xd
jbe 0x4c4615
jmp 0x4c46aa
shl esi, 6
add edi, 2
or esi, eax
mov ebx, esi
cmp ebx, 0xd
jbe 0x4c4615
jmp 0x4c46aa
shl esi, 0xc
add edi, 3
or ecx, esi
mov ebx, ecx
cmp ebx, 0xd
jbe 0x4c4615
mov eax, ebx
cmp eax, 0x110000
je 0x4c462e
cmp eax, 0x5c
je 0x4c46c1
cmp eax, 0x2f
jne 0x4c46d2
inc dword [esp + 0x14]
mov dword [esp + 0x10], edi
cmp edi, dword [esp]
jne 0x4c4637
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 0x4c4b99
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x4c4b79
cmp eax, dword [esi + 0x18]
jae 0x4c4b73
cmp byte [ecx + eax], 0xbf
jg 0x4c4b79
jmp 0x4c3b60
mov eax, dword [esp + 0x98]
mov ebx, ebp
mov byte [esp + 0xc3], 0
mov dword [esp + 0x18], eax
mov eax, 0x2600
jmp 0x4c4743
mov edx, ecx
cmp edx, 0x110000
jne 0x4c47db
cmp ebx, dword [esp]
je 0x4c4836
movzx ecx, byte [ebx]
test cl, cl
js 0x4c4756
inc ebx
jmp 0x4c47bf
movzx edi, byte [ebx + 1]
mov edx, ecx
and edx, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4c47a1
movzx esi, byte [ebx + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp cl, 0xf0
jb 0x4c47b1
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 0x4c4836
add ebx, 4
jmp 0x4c47bf
shl edx, 6
add ebx, 2
or edx, edi
mov edi, dword [esp + 4]
mov ecx, edx
jmp 0x4c47bf
mov edi, dword [esp + 4]
shl edx, 0xc
add ebx, 3
or esi, edx
mov ecx, esi
cmp ecx, 0xd
ja 0x4c4735
mov edx, 0x110000
bt eax, ecx
jb 0x4c4737
jmp 0x4c4735
cmp edx, 0x2f
jne 0x4c4836
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x90]
jne 0x4c47f9
lea ecx, [esp + 0x90]
call fcn.00498280
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.004c67c0
add esp, 0x10
jmp 0x4c4a5b
mov eax, dword [esp]
cmp ebp, eax
je 0x4c4a50
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 0x4c4860
lea ebp, [edi + 1]
mov ebx, eax
jmp 0x4c48b0
movzx esi, byte [edi + 1]
mov ebx, eax
and ebx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4c4899
movzx edx, byte [edi + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x4c48a3
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 0x4c48ab
shl ebx, 6
lea ebp, [edi + 2]
or ebx, esi
jmp 0x4c48b0
shl ebx, 0xc
lea ebp, [edi + 3]
or ebx, edx
mov edx, 0x2600
cmp ebx, 0xd
ja 0x4c48c8
bt edx, ebx
jae 0x4c48c8
cmp ebp, dword [esp]
mov edi, ebp
mov eax, ebp
jne 0x4c4852
jmp 0x4c4a50
mov esi, 1
cmp ebx, 0x80
jb 0x4c48f0
mov esi, 2
cmp ebx, 0x800
jb 0x4c48f0
cmp ebx, 0x10000
mov esi, 4
sbb esi, 0
mov eax, dword [esp]
sub eax, edi
cmp esi, eax
jae 0x4c4904
cmp byte [edi + esi], 0xbf
jg 0x4c490a
jmp 0x4c3b60
jne 0x4c3b60
cmp ebx, 0x23
je 0x4c4914
cmp ebx, 0x3f
jne 0x4c4924
cmp byte [esp + 0xb0], 0
mov eax, ecx
je 0x4c4a50
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
push dword [esp]
push ebp
push ebx
call fcn.004ca2c0
add esp, 0xc
mov edx, dword [esp + 8]
jmp 0x4c4993
inc edi
dec esi
mov dword [esp + 0x10], edi
mov ebx, esi
lea edi, [eax + eax*2 + 0xf919fe]
mov esi, 3
mov eax, dword [esp + 0x90]
sub eax, edx
cmp eax, esi
jb 0x4c4a1c
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 0x4c4a3c
movzx eax, byte [edi]
test al, al
js 0x4c4945
mov ecx, eax
shr ecx, 5
mov ecx, dword [ecx*4 + 0xfd0214]
bt ecx, eax
jb 0x4c4945
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 0x4c4a11
movsx ecx, byte [edi + edx]
mov eax, edx
test ecx, ecx
js 0x4c49f4
mov edx, ecx
mov edi, esi
shr edx, 5
mov esi, dword [edx*4 + 0xfd0214]
lea edx, [eax + 1]
bt esi, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
jae 0x4c49c8
mov edx, dword [esp + 8]
lea ecx, [eax - 1]
cmp ecx, esi
jae 0x4c3b60
lea ecx, [edi + eax]
mov esi, eax
mov dword [esp + 0x10], ecx
jmp 0x4c4959
mov edx, dword [esp + 8]
xor ebx, ebx
jmp 0x4c4959
lea ecx, [esp + 0x90]
push 1
push 1
push esi
call fcn.004ea1e0
add esp, 0xc
mov edx, dword [esp + 0x98]
jmp 0x4c496a
cmp ebp, dword [esp]
mov dword [esp + 8], edx
mov eax, ebp
mov edx, 0x2600
jne 0x4c484e
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.004c7850
add esp, 0x2c
jmp 0x4c42c8
jne 0x4c3b60
cmp esi, 4
jne 0x4c4b18
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.004c7bc0
add esp, 0xc
jmp 0x4c42c8
jne 0x4c3b60
cmp edi, 0xffffffff
je 0x4c3b60
cmp eax, edi
jne 0x4c4b99
push edi
push edx
push ecx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4c4d34
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4c4cdc
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 0x4c4c9b
movzx ebx, byte [ebp]
test bl, bl
js 0x4c4bfa
inc ebp
cmp ebx, 0x2e
jg 0x4c4c51
cmp ebx, 0xd
ja 0x4c4c9b
bt edi, ebx
jb 0x4c4bd0
jmp 0x4c4c9b
movzx edx, byte [ebp + 1]
mov eax, ebx
and eax, 0x1f
and edx, 0x3f
cmp bl, 0xdf
jbe 0x4c4c42
movzx ecx, byte [ebp + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x4c4c86
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 0x4c4c9b
add ebp, 4
cmp ebx, 0x2e
jle 0x4c4be7
jmp 0x4c4c51
shl eax, 6
add ebp, 2
or eax, edx
mov ebx, eax
cmp ebx, 0x2e
jle 0x4c4be7
cmp ebx, 0x2f
je 0x4c4c67
cmp ebx, 0x110000
je 0x4c4bd0
cmp ebx, 0x5c
jne 0x4c4c9b
lea ecx, [esp + 0x1c]
mov edx, ebx
call fcn.004c33b0
cmp ebx, 0x2f
je 0x4c4bd0
cmp ebx, 0x5c
je 0x4c4bd0
jmp 0x4c4c9b
shl eax, 0xc
add ebp, 3
or ecx, eax
mov ebx, ecx
cmp ebx, 0x2e
jle 0x4c4be7
jmp 0x4c4c51
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x24], 2
mov bl, 1
jne 0x4c4cb4
cmp word [eax], 0x2f2f
setne bl
mov edi, dword [esp + 4]
test ecx, ecx
je 0x4c4ccb
push eax
push 0
push dword [0xfd5200]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test bl, bl
je 0x4c4cdc
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.004c5050
add esp, 0x10
jmp 0x4c42c8
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 0x4c43ba