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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rbx, rdx
mov rsi, rcx
mov r15, qword [rdx]
mov rdi, qword [rdx + 8]
mov rcx, qword [r15 + 0xa0]
mov r14, qword [rdx + 0x10]
mov rax, r14
test rcx, rcx
je 0x140114335
mov rax, r14
sub rax, rcx
jbe 0x14011432f
cmp byte [rdi + rcx], 0xc0
jge 0x140114335
jmp 0x14011473b
jne 0x14011473b
test rax, rax
je 0x14011473b
movzx eax, byte [rdi + rcx]
mov r8d, eax
test al, al
jns 0x1401143a6
mov edx, eax
and edx, 0x1f
movzx r8d, byte [rdi + rcx + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x14011439d
movzx r9d, byte [rdi + rcx + 2]
shl r8d, 6
and r9d, 0x3f
or r9d, r8d
cmp al, 0xf0
jb 0x140114433
movzx r8d, byte [rdi + rcx + 3]
and edx, 7
shl edx, 0x12
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
or r8d, edx
cmp r8d, 0x110000
jne 0x1401143a6
jmp 0x14011473b
shl edx, 6
or edx, r8d
mov r8d, edx
cmp r8d, 0x78
je 0x140114509
mov rdx, r14
test rcx, rcx
je 0x1401143cf
mov rdx, r14
sub rdx, rcx
jbe 0x1401143c9
cmp al, 0xc0
jge 0x1401143cf
jmp 0x14011473b
jne 0x14011473b
test rdx, rdx
je 0x14011473b
mov r9d, eax
test al, al
jns 0x140114454
mov edx, eax
and edx, 0x1f
movzx r9d, byte [rdi + rcx + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x14011444b
movzx r8d, byte [rdi + rcx + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp al, 0xf0
jb 0x1401144e1
movzx r9d, byte [rdi + rcx + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and r9d, 0x3f
or r9d, r8d
or r9d, edx
cmp r9d, 0x110000
jne 0x140114454
jmp 0x14011473b
shl edx, 0xc
or r9d, edx
mov r8d, r9d
cmp r8d, 0x78
jne 0x1401143b0
jmp 0x140114509
shl edx, 6
or edx, r9d
mov r9d, edx
cmp r9d, 0x75
je 0x140114509
mov rdx, r14
test rcx, rcx
je 0x14011447d
mov rdx, r14
sub rdx, rcx
jbe 0x140114477
cmp al, 0xc0
jge 0x14011447d
jmp 0x14011473b
jne 0x14011473b
test rdx, rdx
je 0x14011473b
mov r9d, eax
test al, al
jns 0x1401144ff
mov edx, eax
and edx, 0x1f
movzx r9d, byte [rdi + rcx + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x1401144f6
movzx r8d, byte [rdi + rcx + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp al, 0xf0
jb 0x140114728
movzx r9d, byte [rdi + rcx + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and r9d, 0x3f
or r9d, r8d
or r9d, edx
cmp r9d, 0x110000
jne 0x1401144ff
jmp 0x14011473b
shl edx, 0xc
or r8d, edx
mov r9d, r8d
cmp r9d, 0x75
jne 0x14011445e
jmp 0x140114509
shl edx, 6
or edx, r9d
mov r9d, edx
cmp r9d, 0x55
jne 0x14011473b
mov rdx, r14
test rcx, rcx
je 0x140114528
mov rdx, r14
sub rdx, rcx
jbe 0x140114522
cmp al, 0xc0
jge 0x140114528
jmp 0x14011473b
jne 0x14011473b
test rdx, rdx
je 0x14011473b
test al, al
jns 0x140114593
mov edx, eax
and edx, 0x1f
movzx r9d, byte [rdi + rcx + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x140114580
movzx r8d, byte [rdi + rcx + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp al, 0xf0
jb 0x14011458a
movzx eax, byte [rdi + rcx + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and eax, 0x3f
or eax, r8d
or eax, edx
cmp eax, 0x110000
jne 0x140114593
jmp 0x14011473b
shl edx, 6
or edx, r9d
mov eax, edx
jmp 0x140114593
shl edx, 0xc
or r8d, edx
mov eax, r8d
add r15, 0xa0
cmp eax, 0x75
sete cl
mov dl, 2
sub dl, cl
xor ecx, ecx
cmp eax, 0x78
movzx ebp, dl
cmove ebp, ecx
mov rcx, rbx
call fcn.140109810
test al, al
je 0x1401145cf
mov rcx, rbx
call fcn.1401088f0
mov rax, qword [r15]
cmp r14, rax
jne 0x14011468d
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x38], xmm0
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x30], rax
test r14, r14
je 0x140114640
js 0x14011473b
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140114629
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14011473b
mov rcx, rax
mov qword [0x1402d9150], rax
xor edx, edx
mov r8, r14
call sub.kernel32.dll_HeapAlloc
mov rbx, rax
test rax, rax
jne 0x140114645
jmp 0x14011473b
mov ebx, 1
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmm2, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov dword [rsi], 0xa
mov qword [rsi + 0x38], rbx
mov qword [rsi + 0x40], r14
mov qword [rsi + 0x48], r14
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
test rax, rax
je 0x1401146a5
sub r14, rax
jbe 0x14011473b
cmp byte [rdi + rax], 0xc0
jl 0x14011473b
test r14, r14
je 0x14011473b
movzx ecx, byte [rdi + rax]
test cl, cl
jns 0x140114709
mov edx, ecx
and edx, 0x1f
movzx r9d, byte [rdi + rax + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x140114701
movzx r8d, byte [rdi + rax + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp cl, 0xf0
jb 0x14011473f
movzx ecx, byte [rdi + rax + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
or ecx, edx
cmp ecx, 0x110000
jne 0x140114709
jmp 0x14011473b
shl edx, 6
or edx, r9d
mov ecx, edx
cmp ecx, 0x7b
jne 0x14011474d
mov rcx, rsi
mov rdx, rbx
mov r8d, ebp
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
jmp 0x140116b60
shl edx, 0xc
or r8d, edx
mov r9d, r8d
cmp r9d, 0x55
je 0x140114509
ud2
shl edx, 0xc
or r8d, edx
mov ecx, r8d
cmp ecx, 0x7b
je 0x14011470e
mov rcx, rsi
mov rdx, rbx
mov r8d, ebp
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
jmp 0x140117580
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov byte [rsp + 0x27], r8b
mov qword [rsp + 0x28], rcx
mov r12, qword [rdx]
cmp qword [r12 + 0x80], 0
jne 0x140117515
mov r14, rdx
mov qword [r12 + 0x80], 0xffffffffffffffff
lea r13, [r12 + 0x88]
mov qword [r12 + 0x98], 0
lea r15, [r12 + 0xa0]
mov rax, qword [r12 + 0xb0]
mov qword [rsp + 0xb0], rax
movups xmm0, xmmword [r12 + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
lea rcx, [rsp + 0x30]
call fcn.140109650
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xd0], rax
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0xc0], xmm0
mov rbx, qword [r14 + 8]
mov rdi, qword [r14 + 0x10]
movabs rsi, 0x3f0000003f
mov qword [rsp + 0xd8], r15
mov rcx, r14
call fcn.140109810
test al, al
jne 0x140116ce4
mov rax, qword [r15]
cmp rdi, rax
jne 0x14011704a
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x98], rax
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x88], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x70], xmm0
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x80], rax
test rdi, rdi
je 0x1401170fb
js 0x140117515
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140116ca4
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140117515
mov rcx, rax
mov qword [0x1402d9150], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x140117101
jmp 0x140117515
mov rax, qword [r12 + 0x88]
mov byte [rax + rdx], bpl
inc qword [r12 + 0x98]
mov rcx, r14
call fcn.140109810
test al, al
je 0x140116c29
mov rcx, r14
call fcn.1401088f0
mov rax, qword [r15]
cmp rdi, rax
je 0x140116c35
mov rcx, rdi
test rax, rax
je 0x140116d16
mov rcx, rdi
sub rcx, rax
jbe 0x140117515
cmp byte [rbx + rax], 0xc0
jl 0x140117515
test rcx, rcx
je 0x140117515
movzx ebp, byte [rbx + rax]
mov r8d, ebp
test bpl, bpl
jns 0x140116d90
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rbx + rax + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x140116d80
movzx edx, byte [rbx + rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x140116ef5
movzx r8d, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and r8d, 0x3f
or r8d, edx
or r8d, ecx
cmp r8d, 0x110000
jne 0x140116d90
jmp 0x140117515
shl ecx, 6
or ecx, r8d
mov r8d, ecx
nop dword [rax]
cmp r8d, 0x7d
je 0x140116c2c
mov rcx, rdi
test rax, rax
je 0x140116db8
mov rcx, rdi
sub rcx, rax
jbe 0x140117515
cmp bpl, 0xc0
jl 0x140117515
test rcx, rcx
je 0x140117515
mov edx, ebp
test bpl, bpl
jns 0x140116e20
mov ecx, ebp
and ecx, 0x1f
movzx edx, byte [rbx + rax + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x140116e19
movzx r8d, byte [rbx + rax + 2]
shl edx, 6
and r8d, 0x3f
or r8d, edx
cmp bpl, 0xf0
jb 0x140116f0c
movzx edx, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl r8d, 6
and edx, 0x3f
or edx, r8d
or edx, ecx
cmp edx, 0x110000
jne 0x140116e20
jmp 0x140117515
shl ecx, 6
or ecx, edx
mov edx, ecx
lea ecx, [rdx - 0x30]
cmp ecx, 0xa
jb 0x140116e3e
add edx, 0xffffffbf
cmp edx, 0x25
ja 0x140117519
bt rsi, rdx
jae 0x140117519
mov rcx, rdi
test rax, rax
je 0x140116e5c
mov rcx, rdi
sub rcx, rax
jbe 0x140117515
cmp bpl, 0xc0
jl 0x140117515
test rcx, rcx
je 0x140117515
test bpl, bpl
jns 0x140116eca
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rbx + rax + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x140116eba
movzx edx, byte [rbx + rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x140116f26
movzx ebp, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and ebp, 0x3f
or ebp, edx
or ebp, ecx
cmp ebp, 0x110000
jne 0x140116ec2
jmp 0x140117515
shl ecx, 6
or ecx, r8d
mov ebp, ecx
cmp ebp, 0x80
jae 0x140116f35
mov rdx, qword [r12 + 0x98]
cmp rdx, qword [r12 + 0x90]
jne 0x140116cc0
mov rcx, r13
call fcn.1401b5b60
mov rdx, qword [r12 + 0x98]
jmp 0x140116cc0
shl ecx, 0xc
or edx, ecx
mov r8d, edx
cmp r8d, 0x7d
jne 0x140116d9a
jmp 0x140116c2c
shl ecx, 0xc
or r8d, ecx
mov edx, r8d
lea ecx, [rdx - 0x30]
cmp ecx, 0xa
jae 0x140116e28
jmp 0x140116e3e
shl ecx, 0xc
or edx, ecx
mov ebp, edx
cmp ebp, 0x80
jb 0x140116eca
mov r15, rsi
mov dword [rsp + 0x30], 0
mov rsi, r13
mov eax, ebp
cmp ebp, 0x800
jae 0x140116f6b
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x30], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x31], bpl
mov r13d, 2
jmp 0x140116fd4
cmp ebp, 0x10000
jae 0x140116f9e
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x30], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x32], bpl
mov r13d, 3
jmp 0x140116fd4
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x30], al
mov eax, ebp
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x32], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x33], bpl
mov r13d, 4
mov rax, qword [r12 + 0x90]
mov rbp, qword [r12 + 0x98]
sub rax, rbp
cmp rax, r13
jb 0x140117032
mov rcx, qword [r12 + 0x88]
add rcx, rbp
lea rdx, [rsp + 0x30]
mov r8, r13
call sub.msvcrt.dll_memcpy
add rbp, r13
mov qword [r12 + 0x98], rbp
mov r13, rsi
mov rsi, r15
mov r15, qword [rsp + 0xd8]
mov rcx, r14
call fcn.140109810
test al, al
jne 0x140116ce4
jmp 0x140116c29
mov rcx, rsi
mov rdx, rbp
mov r8, r13
call fcn.140089e50
mov rbp, qword [r12 + 0x98]
jmp 0x140116fec
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0xf0], rcx
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0xe0], xmm0
mov r13, qword [r12 + 0x88]
mov rbp, qword [r12 + 0x98]
mov rcx, rdi
test rax, rax
je 0x140117090
mov rcx, rdi
sub rcx, rax
jbe 0x140117515
cmp byte [rbx + rax], 0xc0
jl 0x140117515
test rcx, rcx
je 0x140117515
movzx ecx, byte [rbx + rax]
test cl, cl
jns 0x14011716a
mov edx, ecx
and edx, 0x1f
movzx r9d, byte [rbx + rax + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x140117162
movzx r8d, byte [rbx + rax + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp cl, 0xf0
jb 0x140117503
movzx ecx, byte [rbx + rax + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
or ecx, edx
cmp ecx, 0x110000
jne 0x14011716a
jmp 0x140117515
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x28]
movups xmmword [rcx + 4], xmm0
movups xmmword [rcx + 0x14], xmm1
movups xmmword [rcx + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rcx + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 0xa
jmp 0x1401174db
shl edx, 6
or edx, r9d
mov ecx, edx
cmp ecx, 0x7d
jne 0x140117515
mov rcx, r14
call fcn.140109810
test al, al
je 0x140117187
mov rcx, r14
call fcn.1401088f0
test rbp, rbp
je 0x1401171b4
movzx eax, byte [r13]
cmp eax, 0x2d
je 0x14011723e
cmp eax, 0x2b
jne 0x140117248
dec rbp
je 0x14011738b
inc r13
jmp 0x140117248
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x98], rax
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x88], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x70], xmm0
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x80], rax
test rdi, rdi
je 0x140117479
js 0x140117515
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140117223
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140117515
mov rcx, rax
mov qword [0x1402d9150], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x14011747f
jmp 0x140117515
cmp rbp, 1
je 0x14011738b
xor ecx, ecx
mov edx, 0xffffffff
xor eax, eax
cmp rbp, 9
jb 0x140117362
nop dword [rax + rax]
cmp rbp, rcx
je 0x1401172ab
movzx r8d, byte [r13 + rcx]
lea r9d, [r8 - 0x30]
cmp r9d, 0xa
jb 0x140117292
or r8d, 0x20
add r8d, 0xffffff9f
add r8d, 0xa
cmovb r8d, edx
mov r9d, r8d
cmp r8d, 0xf
ja 0x14011738b
cmp eax, 0xfffffff
ja 0x14011738b
shl eax, 4
or eax, r9d
inc rcx
cmp rbp, rcx
jne 0x140117265
cmp eax, 0x110000
je 0x14011738b
mov ecx, eax
xor ecx, 0xd800
add ecx, 0xffef0000
cmp ecx, 0xffef07ff
jbe 0x14011738b
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x58], rcx
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x48], xmm0
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0x40], rcx
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x30], xmm0
mov rdx, qword [rsp + 0x28]
movups xmmword [rdx + 8], xmm0
mov rcx, qword [rsp + 0x50]
mov qword [rdx + 0x28], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rdx + 0x30], rcx
mov rcx, qword [rsp + 0x40]
mov qword [rdx + 0x18], rcx
mov rcx, qword [rsp + 0x48]
mov qword [rdx + 0x20], rcx
mov dword [rdx + 0x38], eax
mov byte [rdx + 0x3c], 5
movzx eax, byte [rsp + 0x27]
mov byte [rdx + 0x3d], al
mov dword [rdx], 0x22
jmp 0x1401174e7
shl eax, 4
or eax, r9d
inc rcx
cmp rbp, rcx
je 0x1401172ab
movzx r8d, byte [r13 + rcx]
lea r9d, [r8 - 0x30]
cmp r9d, 0xa
jb 0x140117350
or r8d, 0x20
add r8d, 0xffffff9f
add r8d, 0xa
cmovb r8d, edx
mov r9d, r8d
cmp r8d, 0xf
jbe 0x140117350
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x80], rax
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x88], xmm0
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x98], rax
test rdi, rdi
je 0x140117415
js 0x140117515
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x1401173fe
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140117515
mov rcx, rax
mov qword [0x1402d9150], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x14011741b
jmp 0x140117515
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x28]
movups xmmword [rcx + 4], xmm0
movups xmmword [rcx + 0x14], xmm1
movups xmmword [rcx + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rcx + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 8
jmp 0x1401174db
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x28]
movups xmmword [rcx + 4], xmm0
movups xmmword [rcx + 0x14], xmm1
movups xmmword [rcx + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rcx + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 7
mov qword [rcx + 0x38], r14
mov qword [rcx + 0x40], rdi
mov qword [rcx + 0x48], rdi
inc qword [r12 + 0x80]
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
shl edx, 0xc
or r8d, edx
mov ecx, r8d
cmp ecx, 0x7d
je 0x140117173
ud2
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.140109650
mov rcx, rdi
call fcn.140175b70
mov r14, rax
mov r15, rdx
mov rcx, rax
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rax, qword [rsp + 0x28]
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm1
movups xmmword [rax + 0x70], xmm2
mov dword [rax], 9
mov qword [rax + 0x38], r14
mov qword [rax + 0x40], r15
mov qword [rax + 0x48], rdi
jmp 0x1401174e7
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov qword [rsp + 0x28], rcx
mov r12, qword [rdx]
cmp qword [r12 + 0x80], 0
jne 0x140117c40
mov r14, rdx
mov qword [r12 + 0x80], 0xffffffffffffffff
lea rax, [r12 + 0x88]
mov qword [rsp + 0x68], rax
mov qword [r12 + 0x98], 0
lea r13, [r12 + 0xa0]
mov rax, qword [r12 + 0xb0]
mov qword [rsp + 0xb0], rax
movups xmm0, xmmword [r12 + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
mov byte [rsp + 0x27], r8b
movsx rax, r8b
lea rcx, [0x1402c7b78]
mov r15d, dword [rcx + rax*4]
mov rbx, qword [rdx + 8]
mov rdi, qword [rdx + 0x10]
xor esi, esi
mov qword [rsp + 0xc0], r13
jmp 0x14011764f
mov rax, qword [r12 + 0x88]
mov byte [rax + rdx], bpl
inc qword [r12 + 0x98]
inc esi
cmp r15d, esi
je 0x1401179cc
test esi, esi
je 0x140117690
mov rcx, r14
call fcn.140109810
test al, al
je 0x14011794c
mov rcx, r14
call fcn.1401088f0
mov rax, qword [r13]
cmp rax, rdi
je 0x14011794c
mov rcx, rdi
test rax, rax
jne 0x14011769c
jmp 0x1401176b6
mov rax, qword [r13]
mov rcx, rdi
test rax, rax
je 0x1401176b6
mov rcx, rdi
sub rcx, rax
jbe 0x1401176b0
cmp byte [rbx + rax], 0xc0
jge 0x1401176b6
jmp 0x140117c40
jne 0x140117c40
test rcx, rcx
je 0x140117c40
movzx ebp, byte [rbx + rax]
mov edx, ebp
test bpl, bpl
jns 0x140117730
mov ecx, ebp
and ecx, 0x1f
movzx edx, byte [rbx + rax + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x14011771b
movzx r8d, byte [rbx + rax + 2]
shl edx, 6
and r8d, 0x3f
or r8d, edx
cmp bpl, 0xf0
jb 0x14011781d
movzx edx, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl r8d, 6
and edx, 0x3f
or edx, r8d
or edx, ecx
cmp edx, 0x110000
jne 0x140117730
jmp 0x140117c40
shl ecx, 6
or ecx, edx
mov edx, ecx
nop word cs:[rax + rax]
lea ecx, [rdx - 0x30]
cmp ecx, 0xa
jb 0x140117758
add edx, 0xffffffbf
cmp edx, 0x25
ja 0x140117cce
movabs rcx, 0x3f0000003f
bt rcx, rdx
jae 0x140117cce
mov rcx, rdi
test rax, rax
je 0x140117786
mov rcx, rdi
sub rcx, rax
jbe 0x140117780
cmp bpl, 0xc0
jge 0x140117786
jmp 0x140117c40
jne 0x140117c40
test rcx, rcx
je 0x140117c40
test bpl, bpl
jns 0x1401177f0
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rbx + rax + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x1401177e0
movzx edx, byte [rbx + rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x140117837
movzx ebp, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and ebp, 0x3f
or ebp, edx
or ebp, ecx
cmp ebp, 0x110000
jne 0x1401177e8
jmp 0x140117c40
shl ecx, 6
or ecx, r8d
mov ebp, ecx
cmp ebp, 0x80
jae 0x140117846
mov rdx, qword [r12 + 0x98]
cmp rdx, qword [r12 + 0x90]
jne 0x140117630
mov rcx, qword [rsp + 0x68]
call fcn.1401b5b60
mov rdx, qword [r12 + 0x98]
jmp 0x140117630
shl ecx, 0xc
or r8d, ecx
mov edx, r8d
lea ecx, [rdx - 0x30]
cmp ecx, 0xa
jae 0x140117738
jmp 0x140117758
shl ecx, 0xc
or edx, ecx
mov ebp, edx
cmp ebp, 0x80
jb 0x1401177f0
mov dword [rsp + 0x30], 0
mov eax, ebp
cmp ebp, 0x800
jae 0x140117876
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x30], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x31], bpl
mov r13d, 2
jmp 0x1401178df
cmp ebp, 0x10000
jae 0x1401178a9
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x30], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x32], bpl
mov r13d, 3
jmp 0x1401178df
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x30], al
mov eax, ebp
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x32], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x33], bpl
mov r13d, 4
mov rax, qword [r12 + 0x90]
mov rbp, qword [r12 + 0x98]
sub rax, rbp
cmp rax, r13
jb 0x140117932
mov rcx, qword [r12 + 0x88]
add rcx, rbp
lea rdx, [rsp + 0x30]
mov r8, r13
call sub.msvcrt.dll_memcpy
add rbp, r13
mov qword [r12 + 0x98], rbp
mov r13, qword [rsp + 0xc0]
inc esi
cmp r15d, esi
jne 0x14011764f
jmp 0x1401179cc
mov rcx, qword [rsp + 0x68]
mov rdx, rbp
mov r8, r13
call fcn.140089e50
mov rbp, qword [r12 + 0x98]
jmp 0x1401178f7
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x98], rax
movups xmm0, xmmword [r13]
movups xmmword [rsp + 0x88], xmm0
movups xmm0, xmmword [r13]
movaps xmmword [rsp + 0x70], xmm0
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x80], rax
test rdi, rdi
je 0x140117a14
js 0x140117c40
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x1401179b5
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140117c40
mov rcx, rax
mov qword [0x1402d9150], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x140117a1a
jmp 0x140117c40
mov rcx, r14
call fcn.140109810
test al, al
je 0x1401179e0
mov rcx, r14
call fcn.1401088f0
mov rax, qword [r12 + 0x98]
test rax, rax
je 0x140117bca
mov rcx, qword [r12 + 0x88]
movzx edx, byte [rcx]
cmp edx, 0x2d
je 0x140117a7b
cmp edx, 0x2b
jne 0x140117a85
dec rax
je 0x140117bca
inc rcx
jmp 0x140117a85
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x28]
movups xmmword [rcx + 4], xmm0
movups xmmword [rcx + 0x14], xmm1
movups xmmword [rcx + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rcx + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 0xa
jmp 0x140117ca6
cmp rax, 1
je 0x140117bca
xor r8d, r8d
mov r9d, 0xffffffff
xor edx, edx
cmp rax, 9
jb 0x140117ba2
nop word [rax + rax]
cmp rax, r8
je 0x140117aeb
movzx r10d, byte [rcx + r8]
lea r11d, [r10 - 0x30]
cmp r11d, 0xa
jb 0x140117ad1
or r10d, 0x20
add r10d, 0xffffff9f
add r10d, 0xa
cmovb r10d, r9d
mov r11d, r10d
cmp r10d, 0xf
ja 0x140117bca
cmp edx, 0xfffffff
ja 0x140117bca
shl edx, 4
or edx, r11d
inc r8
cmp rax, r8
jne 0x140117aa5
cmp edx, 0x110000
je 0x140117bca
mov eax, edx
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef07ff
jbe 0x140117bca
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x40], rax
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x30], xmm0
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x58], rax
movups xmm1, xmmword [r13]
movups xmmword [rsp + 0x48], xmm1
mov rcx, qword [rsp + 0x28]
movups xmmword [rcx + 8], xmm0
mov rax, qword [rsp + 0x50]
mov qword [rcx + 0x28], rax
mov rax, qword [rsp + 0x58]
mov qword [rcx + 0x30], rax
mov rax, qword [rsp + 0x40]
mov qword [rcx + 0x18], rax
mov rax, qword [rsp + 0x48]
mov qword [rcx + 0x20], rax
mov dword [rcx + 0x38], edx
mov byte [rcx + 0x3c], 4
movzx eax, byte [rsp + 0x27]
mov byte [rcx + 0x3d], al
mov dword [rcx], 0x22
jmp 0x140117cb2
shl edx, 4
or edx, r11d
inc r8
cmp rax, r8
je 0x140117aeb
movzx r10d, byte [rcx + r8]
lea r11d, [r10 - 0x30]
cmp r11d, 0xa
jb 0x140117b90
or r10d, 0x20
add r10d, 0xffffff9f
add r10d, 0xa
cmovb r10d, r9d
mov r11d, r10d
cmp r10d, 0xf
jbe 0x140117b90
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x80], rax
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [r13]
movups xmmword [rsp + 0x88], xmm0
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x98], rax
test rdi, rdi
je 0x140117c44
js 0x140117c40
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140117c2e
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140117c40
mov rcx, rax
mov qword [0x1402d9150], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x140117c4a
ud2
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x28]
movups xmmword [rcx + 4], xmm0
movups xmmword [rcx + 0x14], xmm1
movups xmmword [rcx + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rcx + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 8
mov qword [rcx + 0x38], r14
mov qword [rcx + 0x40], rdi
mov qword [rcx + 0x48], rdi
inc qword [r12 + 0x80]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.140109650
mov rcx, rdi
call fcn.140175b70
mov r14, rax
mov r15, rdx
mov rcx, rax
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rax, qword [rsp + 0x28]
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm1
movups xmmword [rax + 0x70], xmm2
mov dword [rax], 9
mov qword [rax + 0x38], r14
mov qword [rax + 0x40], r15
mov qword [rax + 0x48], rdi
jmp 0x140117cb2