Function at 0x4c6d90
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 0x4c6da6
pop eax
test esi, esi
js 0x4c6dd0
mov ebp, edx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xc], ecx
je 0x4c6dd2
movzx eax, byte [0x6019e5]
xor ecx, ecx
mov edx, esi
call fcn.00499510
test eax, eax
mov ebx, esi
jne 0x4c6dd9
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 0x4c6e50
lea edi, [edx + 1]
mov ebp, edi
sub ebp, edx
add ebp, esi
cmp eax, 0x21
mov eax, ebp
jae 0x4c6ebc
cmp edi, dword [esp]
mov edx, edi
mov esi, ebp
je 0x4c6eb5
movzx eax, byte [edx]
test al, al
jns 0x4c6e40
movzx ebx, byte [edx + 1]
mov ecx, eax
and ecx, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x4c6e9b
mov ebp, esi
movzx esi, byte [edx + 2]
shl ebx, 6
and esi, 0x3f
or esi, ebx
cmp al, 0xf0
jb 0x4c6ea7
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 0x4c6eb1
shl ecx, 6
lea edi, [edx + 2]
or ecx, ebx
mov eax, ecx
jmp 0x4c6e43
shl ecx, 0xc
lea edi, [edx + 3]
or esi, ecx
mov eax, esi
mov esi, ebp
jmp 0x4c6e43
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 0x4c6eec
lea ebx, [esi - 1]
cmp ecx, 0x21
jae 0x4c6f6c
cmp edi, ebx
je 0x4c6f77
movsx ecx, byte [ebx - 1]
mov esi, ebx
test ecx, ecx
jns 0x4c6ee0
movzx ebx, byte [esi - 2]
cmp bl, 0xc0
jge 0x4c6f35
movzx eax, byte [esi - 3]
cmp al, 0xc0
mov dword [esp + 0x10], eax
jge 0x4c6f41
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 0x4c6f4f
lea edi, [esi - 2]
and ebx, 0x1f
mov dword [esp + 4], edi
jmp 0x4c6f57
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 0x4c6eec
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 0x4c708d
mov eax, ebp
sub eax, edx
cmp eax, ecx
jae 0x4c6fc1
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 0x4c6ff9
shl esi, 6
add edx, 2
or esi, ecx
mov ebx, esi
cmp ebx, 0xd
ja 0x4c6ff9
nop word cs:[eax + eax]
nop
bt edi, ebx
jb 0x4c707a
cmp edx, eax
je 0x4c708d
movzx ebx, byte [edx]
test bl, bl
js 0x4c7010
inc edx
cmp ebx, 0xd
jbe 0x4c6ff0
jmp 0x4c6ff9
movzx ecx, byte [edx + 1]
mov esi, ebx
and esi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x4c6fd5
movzx edi, byte [edx + 2]
shl ecx, 6
and edi, 0x3f
or edi, ecx
cmp bl, 0xf0
jb 0x4c705d
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 0x4c708d
add edx, 4
cmp ebx, 0xd
jbe 0x4c6ff0
jmp 0x4c6ff9
shl esi, 0xc
add edx, 3
or edi, esi
mov ebx, edi
mov edi, 0x2600
cmp ebx, 0xd
jbe 0x4c6ff0
jmp 0x4c6ff9
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 0x4c70d4
inc ecx
cmp edx, 0xd
ja 0x4c7160
mov esi, 0x110000
bt eax, edx
jae 0x4c7160
cmp esi, 0x110000
jne 0x4c716e
cmp ecx, ebp
je 0x4c7381
movzx edx, byte [ecx]
test dl, dl
jns 0x4c70b0
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4c712f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4c7144
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 0x4c7381
add ecx, 4
cmp edx, 0xd
jbe 0x4c70ba
jmp 0x4c7160
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4c70ba
jmp 0x4c7160
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4c70ba
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4c70d4
mov ecx, dword [esp + 4]
mov eax, 0x2600
jmp 0x4c71a4
inc ecx
cmp edx, 0xd
ja 0x4c7230
mov esi, 0x110000
bt eax, edx
jae 0x4c7230
cmp esi, 0x110000
jne 0x4c723e
cmp ecx, ebp
je 0x4c7381
movzx edx, byte [ecx]
test dl, dl
jns 0x4c7180
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4c71ff
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4c7214
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 0x4c7381
add ecx, 4
cmp edx, 0xd
jbe 0x4c718a
jmp 0x4c7230
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4c718a
jmp 0x4c7230
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4c718a
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4c71a4
and esi, 0xffffffdf
add esi, 0xffffffbf
cmp esi, 0x19
ja 0x4c7381
mov dword [esp], ebp
mov ebp, dword [esp + 4]
lea ebx, [esp + 0x68]
mov edi, 0x2600
jmp 0x4c7280
mov edx, eax
or edx, 0x20
cmp ecx, 0x1a
mov ecx, ebx
cmovae edx, eax
call fcn.004c6620
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebp, dword [esp]
je 0x4c7543
movzx eax, byte [ebp]
test al, al
js 0x4c72a0
inc ebp
cmp eax, 0xd
jbe 0x4c72f5
jmp 0x4c7320
movzx esi, byte [ebp + 1]
mov ecx, eax
and ecx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4c72fc
movzx edx, byte [ebp + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x4c730d
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 0x4c7546
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0xd
ja 0x4c7320
bt edi, eax
jb 0x4c7280
jmp 0x4c7320
shl ecx, 6
add ebp, 2
or ecx, esi
mov eax, ecx
cmp eax, 0xd
jbe 0x4c72f5
jmp 0x4c7320
shl ecx, 0xc
add ebp, 3
or edx, ecx
mov eax, edx
cmp eax, 0xd
jbe 0x4c72f5
nop dword [eax]
cmp eax, 0x110000
je 0x4c7280
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 0x4c725f
lea edx, [eax - 0x2d]
cmp edx, 2
jb 0x4c725f
cmp eax, 0x2b
je 0x4c725f
cmp eax, 0x3a
je 0x4c7554
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 0x4c74dd
mov ecx, dword [esp + 4]
mov eax, 0x2600
jmp 0x4c73c4
inc ecx
cmp edx, 0xd
ja 0x4c7450
mov esi, 0x110000
bt eax, edx
jae 0x4c7450
cmp esi, 0x110000
jne 0x4c745e
cmp ecx, ebp
je 0x4c74bc
movzx edx, byte [ecx]
test dl, dl
jns 0x4c73a0
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4c741f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4c7434
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 0x4c74bc
add ecx, 4
cmp edx, 0xd
jbe 0x4c73aa
jmp 0x4c7450
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4c73aa
jmp 0x4c7450
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4c73aa
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4c73c4
cmp esi, 0x23
jne 0x4c74bc
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.004ccff0
add esp, 0xc
jmp 0x4c7538
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 0x4c74e7
cmp esi, eax
jae 0x4c74e1
cmp byte [ecx + esi], 0xbf
jg 0x4c74e7
jmp 0x4c6dd0
mov bl, 6
jmp 0x4c7512
jne 0x4c6dd0
mov bl, 7
cmp eax, esi
je 0x4c7512
cmp byte [ecx + esi], 0x2f
jne 0x4c7512
test edx, edx
je 0x4c75ce
cmp edx, eax
jae 0x4c75c8
cmp byte [ecx + edx], 0xbf
jg 0x4c75ce
jmp 0x4c6dd0
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x68], 0
mov byte [eax + 4], bl
mov dword [eax], 2
je 0x4c7538
push dword [esp + 0x6c]
push 0
push dword [0x6019d8]
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 0x4c736e
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 0x4c75c1
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x6c]
add edx, dword [ecx*4 + 0x4c7ffc]
jmp edx
mov bl, 2
jmp 0x4c76f2
jne 0x4c6dd0
call fcn.004cd250
test al, al
je 0x4c7634
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.004cc3d0
jmp 0x4c7f9c
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 0x4c7dd6
cmp edi, dword [esp + 0x44]
jne 0x4c7701
lea ecx, [esp + 0x44]
call fcn.00488850
mov ecx, dword [esp + 0x48]
test bl, bl
lea eax, [edi + 1]
mov byte [ecx + edi], 0x3a
mov dword [esp + 0x4c], eax
je 0x4c77eb
movzx eax, bl
mov dword [esp + 4], edi
cmp eax, 2
jne 0x4c785a
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, 0x5f6cf0
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.004c80e0
add esp, 4
test al, al
je 0x4c7989
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 0x4c7f97
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4c7826
mov eax, dword [esp]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x1c], ebp
mov ecx, 0x5f6cf0
mov edx, 2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
call fcn.004c80e0
add esp, 4
test al, al
jne 0x4c7826
push 4
push esi
call dword [edi + 0x14]
add esp, 8
mov ecx, dword [esp + 0x50]
xor eax, eax
test ecx, ecx
je 0x4c7d88
mov esi, dword [ecx + 0x20]
test esi, esi
je 0x4c7d88
mov edx, dword [ecx + 0x14]
cmp esi, dword [ecx + 0x18]
jae 0x4c7d60
cmp byte [edx + esi], 0xbf
jg 0x4c7d66
jmp 0x4c6dd0
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 0x4c78a7
jmp 0x4c7942
inc edi
cmp ebx, 0xd
ja 0x4c791a
mov eax, 0x110000
bt edx, ebx
jae 0x4c791a
cmp eax, 0x110000
jne 0x4c7927
cmp edi, dword [esp]
je 0x4c7942
movzx ebx, byte [edi]
test bl, bl
jns 0x4c787b
movzx eax, byte [edi + 1]
mov esi, ebx
and esi, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x4c78f6
movzx ecx, byte [edi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
cmp bl, 0xf0
jb 0x4c7907
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 0x4c7942
add edi, 4
cmp ebx, 0xd
jbe 0x4c7885
jmp 0x4c791a
shl esi, 6
add edi, 2
or esi, eax
mov ebx, esi
cmp ebx, 0xd
jbe 0x4c7885
jmp 0x4c791a
shl esi, 0xc
add edi, 3
or ecx, esi
mov ebx, ecx
cmp ebx, 0xd
jbe 0x4c7885
mov eax, ebx
cmp eax, 0x110000
je 0x4c789e
cmp eax, 0x5c
je 0x4c7931
cmp eax, 0x2f
jne 0x4c7942
inc dword [esp + 0x14]
mov dword [esp + 0x10], edi
cmp edi, dword [esp]
jne 0x4c78a7
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 0x4c7e09
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x4c7de9
cmp eax, dword [esi + 0x18]
jae 0x4c7de3
cmp byte [ecx + eax], 0xbf
jg 0x4c7de9
jmp 0x4c6dd0
mov eax, dword [esp + 0x98]
mov ebx, ebp
mov byte [esp + 0xc3], 0
mov dword [esp + 0x18], eax
mov eax, 0x2600
jmp 0x4c79b3
mov edx, ecx
cmp edx, 0x110000
jne 0x4c7a4b
cmp ebx, dword [esp]
je 0x4c7aa6
movzx ecx, byte [ebx]
test cl, cl
js 0x4c79c6
inc ebx
jmp 0x4c7a2f
movzx edi, byte [ebx + 1]
mov edx, ecx
and edx, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4c7a11
movzx esi, byte [ebx + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp cl, 0xf0
jb 0x4c7a21
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 0x4c7aa6
add ebx, 4
jmp 0x4c7a2f
shl edx, 6
add ebx, 2
or edx, edi
mov edi, dword [esp + 4]
mov ecx, edx
jmp 0x4c7a2f
mov edi, dword [esp + 4]
shl edx, 0xc
add ebx, 3
or esi, edx
mov ecx, esi
cmp ecx, 0xd
ja 0x4c79a5
mov edx, 0x110000
bt eax, ecx
jb 0x4c79a7
jmp 0x4c79a5
cmp edx, 0x2f
jne 0x4c7aa6
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x90]
jne 0x4c7a69
lea ecx, [esp + 0x90]
call fcn.00488850
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.004c9a20
add esp, 0x10
jmp 0x4c7ccb
mov eax, dword [esp]
cmp ebp, eax
je 0x4c7cc0
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 0x4c7ad0
lea ebp, [edi + 1]
mov ebx, eax
jmp 0x4c7b20
movzx esi, byte [edi + 1]
mov ebx, eax
and ebx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4c7b09
movzx edx, byte [edi + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x4c7b13
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 0x4c7b1b
shl ebx, 6
lea ebp, [edi + 2]
or ebx, esi
jmp 0x4c7b20
shl ebx, 0xc
lea ebp, [edi + 3]
or ebx, edx
mov edx, 0x2600
cmp ebx, 0xd
ja 0x4c7b38
bt edx, ebx
jae 0x4c7b38
cmp ebp, dword [esp]
mov edi, ebp
mov eax, ebp
jne 0x4c7ac2
jmp 0x4c7cc0
mov esi, 1
cmp ebx, 0x80
jb 0x4c7b60
mov esi, 2
cmp ebx, 0x800
jb 0x4c7b60
cmp ebx, 0x10000
mov esi, 4
sbb esi, 0
mov eax, dword [esp]
sub eax, edi
cmp esi, eax
jae 0x4c7b74
cmp byte [edi + esi], 0xbf
jg 0x4c7b7a
jmp 0x4c6dd0
jne 0x4c6dd0
cmp ebx, 0x23
je 0x4c7b84
cmp ebx, 0x3f
jne 0x4c7b94
cmp byte [esp + 0xb0], 0
mov eax, ecx
je 0x4c7cc0
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
push dword [esp]
push ebp
push ebx
call fcn.004cd520
add esp, 0xc
mov edx, dword [esp + 8]
jmp 0x4c7c03
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_FFSHA1SHA256SHA384SHA512SHA512_256UnexpectedErrorInvalidEncodingInvalidComponentTooLarge]
mov esi, 3
mov eax, dword [esp + 0x90]
sub eax, edx
cmp eax, esi
jb 0x4c7c8c
mov eax, dword [esp + 0x94]
add eax, edx
push esi
push edi
push eax
mov edi, esi
mov esi, edx
call fcn.004ef180
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 0x4c7cac
movzx eax, byte [edi]
test al, al
js 0x4c7bb5
mov ecx, eax
shr ecx, 5
mov ecx, dword [ecx*4 + 0x5f6cd4]
bt ecx, eax
jb 0x4c7bb5
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 0x4c7c81
movsx ecx, byte [edi + edx]
mov eax, edx
test ecx, ecx
js 0x4c7c64
mov edx, ecx
mov edi, esi
shr edx, 5
mov esi, dword [edx*4 + 0x5f6cd4]
lea edx, [eax + 1]
bt esi, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
jae 0x4c7c38
mov edx, dword [esp + 8]
lea ecx, [eax - 1]
cmp ecx, esi
jae 0x4c6dd0
lea ecx, [edi + eax]
mov esi, eax
mov dword [esp + 0x10], ecx
jmp 0x4c7bc9
mov edx, dword [esp + 8]
xor ebx, ebx
jmp 0x4c7bc9
lea ecx, [esp + 0x90]
push 1
push 1
push esi
call fcn.00500270
add esp, 0xc
mov edx, dword [esp + 0x98]
jmp 0x4c7bda
cmp ebp, dword [esp]
mov dword [esp + 8], edx
mov eax, ebp
mov edx, 0x2600
jne 0x4c7abe
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.004caab0
add esp, 0x2c
jmp 0x4c7538
jne 0x4c6dd0
cmp esi, 4
jne 0x4c7d88
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.004cae20
add esp, 0xc
jmp 0x4c7538
jne 0x4c6dd0
cmp edi, 0xffffffff
je 0x4c6dd0
cmp eax, edi
jne 0x4c7e09
push edi
push edx
push ecx
call fcn.004ef6f4
add esp, 0xc
test eax, eax
je 0x4c7fa4
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4c7f4c
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 0x4c7f0b
movzx ebx, byte [ebp]
test bl, bl
js 0x4c7e6a
inc ebp
cmp ebx, 0x2e
jg 0x4c7ec1
cmp ebx, 0xd
ja 0x4c7f0b
bt edi, ebx
jb 0x4c7e40
jmp 0x4c7f0b
movzx edx, byte [ebp + 1]
mov eax, ebx
and eax, 0x1f
and edx, 0x3f
cmp bl, 0xdf
jbe 0x4c7eb2
movzx ecx, byte [ebp + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x4c7ef6
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 0x4c7f0b
add ebp, 4
cmp ebx, 0x2e
jle 0x4c7e57
jmp 0x4c7ec1
shl eax, 6
add ebp, 2
or eax, edx
mov ebx, eax
cmp ebx, 0x2e
jle 0x4c7e57
cmp ebx, 0x2f
je 0x4c7ed7
cmp ebx, 0x110000
je 0x4c7e40
cmp ebx, 0x5c
jne 0x4c7f0b
lea ecx, [esp + 0x1c]
mov edx, ebx
call fcn.004c6620
cmp ebx, 0x2f
je 0x4c7e40
cmp ebx, 0x5c
je 0x4c7e40
jmp 0x4c7f0b
shl eax, 0xc
add ebp, 3
or ecx, eax
mov ebx, ecx
cmp ebx, 0x2e
jle 0x4c7e57
jmp 0x4c7ec1
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x24], 2
mov bl, 1
jne 0x4c7f24
cmp word [eax], 0x2f2f
setne bl
mov edi, dword [esp + 4]
test ecx, ecx
je 0x4c7f3b
push eax
push 0
push dword [0x6019d8]
call dword [sym.imp.kernel32.dll_HeapFree]
test bl, bl
je 0x4c7f4c
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.004c82b0
add esp, 0x10
jmp 0x4c7538
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 0x4c762a