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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov r13, rdx
movzx eax, byte [rcx + 0x28]
cmp al, 0x82
jne 0x14015c4c3
jmp 0x14015c5f7
movzx r8d, byte [rcx + 0x40]
cmp r8b, 0x82
je 0x14015c519
cmp r8b, 0x81
je 0x14015c506
cmp r8b, 0x80
je 0x14015c4ef
movzx edx, byte [rcx + 0x43]
mov byte [rsp + 0x5a], dl
movzx edx, word [rcx + 0x41]
mov word [rsp + 0x58], dx
mov r9d, dword [rcx + 0x48]
mov r10d, dword [rcx + 0x44]
movzx edx, byte [rsp + 0x5a]
mov byte [rsp + 0x3a], dl
movzx edx, word [rsp + 0x58]
mov word [rsp + 0x38], dx
movzx edx, byte [rsp + 0x3a]
mov byte [rsp + 0x5a], dl
movzx edx, word [rsp + 0x38]
mov word [rsp + 0x58], dx
mov byte [rsp + 0x2f], r8b
movzx edx, byte [rsp + 0x5a]
mov byte [rsp + 0x32], dl
movzx edx, word [rsp + 0x58]
mov word [rsp + 0x30], dx
cmp al, 0x81
je 0x14015c568
cmp al, 0x80
je 0x14015c54e
movzx edx, byte [rcx + 0x2b]
mov byte [rsp + 0x5a], dl
movzx edx, word [rcx + 0x29]
mov word [rsp + 0x58], dx
mov r8d, dword [rcx + 0x30]
mov edx, dword [rcx + 0x2c]
movzx r11d, byte [rsp + 0x5a]
mov byte [rsp + 0x36], r11b
movzx r11d, word [rsp + 0x58]
mov word [rsp + 0x34], r11w
movzx r11d, byte [rcx + 0x34]
mov byte [rsp + 0x2e], r11b
cmp r11b, 0x81
je 0x14015c5b2
cmp byte [rsp + 0x2e], 0x80
je 0x14015c598
movzx r11d, byte [rcx + 0x37]
mov byte [rsp + 0x5a], r11b
movzx r11d, word [rcx + 0x35]
mov word [rsp + 0x58], r11w
mov r14d, dword [rcx + 0x3c]
mov edi, dword [rcx + 0x38]
movzx r11d, byte [rsp + 0x5a]
mov byte [rsp + 0x3a], r11b
movzx r11d, word [rsp + 0x58]
mov word [rsp + 0x38], r11w
movzx r11d, byte [rsp + 0x32]
mov byte [rsp + 0x4a], r11b
movzx r11d, word [rsp + 0x30]
mov word [rsp + 0x48], r11w
movzx r11d, word [rsp + 0x34]
mov word [rsp + 0x50], r11w
movzx r11d, byte [rsp + 0x36]
mov byte [rsp + 0x52], r11b
movzx r11d, word [rsp + 0x38]
mov word [rsp + 0x4c], r11w
movzx r11d, byte [rsp + 0x3a]
mov byte [rsp + 0x4e], r11b
movzx ebx, byte [rcx + 0x1c]
cmp bl, 0x82
mov dword [rsp + 0xbc], edi
mov qword [rsp + 0xd0], r14
jne 0x14015c614
jmp 0x14015c6c9
movzx ebp, byte [rcx + 0x10]
cmp bpl, 0x81
je 0x14015c65f
cmp bpl, 0x80
je 0x14015c63c
movzx r11d, byte [rcx + 0x13]
mov byte [rsp + 0x5a], r11b
movzx r11d, word [rcx + 0x11]
mov word [rsp + 0x58], r11w
mov esi, dword [rcx + 0x18]
mov r11d, dword [rcx + 0x14]
mov dword [rsp + 0xb8], r11d
movzx r11d, byte [rsp + 0x5a]
mov byte [rsp + 0x36], r11b
movzx r11d, word [rsp + 0x58]
mov word [rsp + 0x34], r11w
mov r15, qword [rcx + 8]
cmp bl, 0x81
je 0x14015c6a0
cmp bl, 0x80
je 0x14015c686
movzx r11d, byte [rcx + 0x1f]
mov byte [rsp + 0x5a], r11b
movzx r11d, word [rcx + 0x1d]
mov word [rsp + 0x58], r11w
mov r14d, dword [rcx + 0x24]
mov edi, dword [rcx + 0x20]
movzx r11d, byte [rsp + 0x5a]
mov byte [rsp + 0x3a], r11b
movzx r11d, word [rsp + 0x58]
mov word [rsp + 0x38], r11w
mov r12, qword [rcx]
movzx ecx, byte [rsp + 0x36]
mov byte [rsp + 0x32], cl
movzx ecx, word [rsp + 0x34]
mov word [rsp + 0x30], cx
movzx ecx, word [rsp + 0x38]
mov word [rsp + 0x54], cx
movzx ecx, byte [rsp + 0x3a]
mov byte [rsp + 0x56], cl
movzx ecx, byte [rsp + 0x52]
mov byte [rsp + 0x83], cl
movzx ecx, word [rsp + 0x50]
mov word [rsp + 0x81], cx
movzx ecx, word [rsp + 0x4c]
mov word [rsp + 0x8d], cx
movzx ecx, byte [rsp + 0x4e]
mov byte [rsp + 0x8f], cl
movzx ecx, word [rsp + 0x48]
mov word [rsp + 0x99], cx
movzx ecx, byte [rsp + 0x4a]
mov byte [rsp + 0x9b], cl
movzx ecx, word [rsp + 0x30]
mov word [rsp + 0x69], cx
movzx ecx, byte [rsp + 0x32]
mov byte [rsp + 0x6b], cl
movzx ecx, word [rsp + 0x54]
mov word [rsp + 0x75], cx
movzx ecx, byte [rsp + 0x56]
mov byte [rsp + 0x77], cl
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r15
mov byte [rsp + 0x68], bpl
mov ecx, dword [rsp + 0xb8]
mov dword [rsp + 0x6c], ecx
mov dword [rsp + 0x70], esi
mov byte [rsp + 0x74], bl
mov dword [rsp + 0x78], edi
mov dword [rsp + 0x7c], r14d
mov byte [rsp + 0x80], al
mov dword [rsp + 0x84], edx
mov dword [rsp + 0x88], r8d
movzx ecx, byte [rsp + 0x2e]
mov byte [rsp + 0x8c], cl
mov ecx, dword [rsp + 0xbc]
mov dword [rsp + 0x90], ecx
mov rcx, qword [rsp + 0xd0]
mov dword [rsp + 0x94], ecx
movzx ecx, byte [rsp + 0x2f]
mov byte [rsp + 0x98], cl
mov dword [rsp + 0x9c], r10d
mov dword [rsp + 0xa0], r9d
cmp al, 0x82
je 0x14015ca84
mov byte [rsp + 0x43], bpl
mov qword [rsp + 0xa8], r13
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xc0], r15
mov qword [rsp + 0xc8], r14
mov byte [rsp + 0x2d], bl
mov dword [rsp + 0x44], edi
cmp al, 0x81
jne 0x14015c8ce
movzx edx, byte [rsp + 0x2f]
cmp dl, 0x82
je 0x14015ca31
mov byte [rsp + 0x98], 0x81
cmp dl, 0x81
je 0x14015ca31
lea rax, [rsp + 0x81]
mov ecx, dword [rax + 0x1f]
mov dword [rax + 7], ecx
mov rcx, qword [rax + 0x18]
mov qword [rax], rcx
mov byte [rsp + 0x80], dl
cmp dl, 0x80
jne 0x14015c9cb
mov rax, qword [rsp + 0xa8]
mov r12, qword [rax + 0x20]
mov rdi, qword [rax + 0x28]
mov r13b, pe_nt_image_headers64
jmp 0x14015c891
mov edx, dword [rsp + 0x84]
lea rax, [rsp + 0x80]
mov dword [rax + 8], 0
mov qword [rax], 0
xor r13d, r13d
mov rcx, r12
call qword [rdi + 0x20]
mov r14b, 1
test al, al
jne 0x14015d024
cmp r13b, 0x80
je 0x14015c860
movzx r15d, byte [rsp + 0x8a]
cmp r15b, byte [rsp + 0x8b]
jae 0x14015ca29
lea eax, [r15 + 1]
mov byte [rsp + 0x8a], al
cmp r15b, 0xa
jae 0x14015d07c
movzx edx, byte [rsp + r15 + 0x80]
jmp 0x14015c880
mov r13d, r8d
shr r13d, 0x18
shr r8d, 0x10
cmp al, 0x80
jne 0x14015c96a
mov rax, qword [rsp + 0xa8]
mov r14, qword [rax + 0x20]
mov r12, qword [rax + 0x28]
mov dil, pe_nt_image_headers64
jmp 0x14015c934
lea rax, [rsp + 0x80]
mov dword [rax + 8], 0
mov qword [rax], 0
xor ebx, ebx
xor r13d, r13d
xor ebp, ebp
xor edi, edi
mov rcx, r14
call qword [r12 + 0x20]
mov edx, ebx
mov r8d, ebp
test al, al
jne 0x14015d021
cmp dil, 0x80
je 0x14015c900
cmp r8b, r13b
jae 0x14015c7fd
lea ebp, [r8 + 1]
mov byte [rsp + 0x8a], bpl
movzx r15d, r8b
cmp r8b, 0xa
jae 0x14015d07c
mov ebx, edx
movzx edx, byte [rsp + r15 + 0x80]
jmp 0x14015c91f
movzx r15d, r8b
mov edi, r13d
mov rax, qword [rsp + 0xa8]
mov r14, qword [rax + 0x20]
mov r12, qword [rax + 0x28]
mov ebp, r15d
inc bpl
nop word [rax + rax]
cmp r15, rdi
jae 0x14015c7fd
mov byte [rsp + 0x8a], bpl
cmp r15, 9
ja 0x14015d07c
movzx edx, byte [rsp + r15 + 0x80]
mov rcx, r14
call qword [r12 + 0x20]
inc bpl
inc r15
test al, al
je 0x14015c990
jmp 0x14015d021
movzx edi, byte [rsp + 0x8b]
movzx r15d, byte [rsp + 0x8a]
mov rax, qword [rsp + 0xa8]
mov r12, qword [rax + 0x20]
mov r13, qword [rax + 0x28]
nop dword [rax]
cmp r15, rdi
jae 0x14015ca29
lea eax, [r15 + 1]
mov byte [rsp + 0x8a], al
cmp r15, 9
ja 0x14015d07c
movzx edx, byte [rsp + r15 + 0x80]
mov rcx, r12
call qword [r13 + 0x20]
inc r15
mov r14b, 1
test al, al
je 0x14015c9f0
jmp 0x14015d024
mov byte [rsp + 0x98], 0x81
movzx eax, byte [rsp + 0x2e]
cmp al, 0x81
mov rcx, qword [rsp + 0xd0]
jne 0x14015ceeb
mov byte [rsp + 0x8c], 0x81
mov byte [rsp + 0x80], 0x82
mov edi, dword [rsp + 0x44]
movzx ebx, byte [rsp + 0x2d]
mov r14, qword [rsp + 0xc8]
mov r15, qword [rsp + 0xc0]
mov r12, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xa8]
movzx ebp, byte [rsp + 0x43]
cmp bl, 0x82
jne 0x14015ca91
xor r14d, r14d
jmp 0x14015d024
mov qword [rsp + 0xc0], r15
mov qword [rsp + 0xc8], r14
mov byte [rsp + 0x2d], bl
mov dword [rsp + 0x44], edi
mov rdi, qword [r13 + 0x20]
mov r15, qword [r13 + 0x28]
cmp bpl, 0x81
mov edx, dword [rsp + 0xb8]
jne 0x14015cdce
test r12, r12
mov r8, qword [rsp + 0xc8]
je 0x14015ce4e
cmp r12, qword [rsp + 0xc0]
je 0x14015ce4e
movzx ebx, byte [r12]
test bl, bl
js 0x14015cb26
inc r12
mov qword [rsp + 0xb0], r12
mov r13b, 2
mov ax, 0x5c
cmp ebx, 0x27
ja case.default.0x14015cb15
mov ecx, ebx
lea r8, [0x14019c3d8]
movsxd rdx, dword [r8 + rcx*4]
add rdx, r8
jmp rdx
mov dx, 0x3000
xor r8d, r8d
mov r9, rcx
jmp 0x14015cbf5
mov eax, ebx
and eax, 0x1f
movzx edx, byte [r12 + 1]
and edx, 0x3f
cmp bl, 0xdf
jbe 0x14015cb7b
movzx ecx, byte [r12 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x14015cce3
movzx ebx, byte [r12 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
or ebx, eax
cmp ebx, 0x110000
je 0x14015ce4e
add r12, 4
jmp 0x14015caed
add r12, 2
mov qword [rsp + 0xb0], r12
shl eax, 6
or eax, edx
mov ebx, eax
mov r13b, 2
mov ax, 0x5c
cmp ebx, 0x27
jbe 0x14015cb05
cmp ebx, 0x5c
jne case.0x14015cb15.1
xor ecx, ecx
mov dx, 0x5c00
jmp 0x14015cbed
mov ecx, ebx
call dbg.is_printable
test al, al
je 0x14015cd0b
mov ax, pe_nt_image_headers64
xor edx, edx
xor ecx, ecx
xor r9d, r9d
jmp 0x14015cbf5
xor ecx, ecx
mov dx, 0x7400
jmp 0x14015cbed
xor ecx, ecx
mov dx, 0x6e00
jmp 0x14015cbed
xor ecx, ecx
mov dx, 0x7200
jmp 0x14015cbed
xor ecx, ecx
mov dx, 0x2200
jmp 0x14015cbed
xor ecx, ecx
mov dx, 0x2700
xor ebx, ebx
xor r9d, r9d
xor r8d, r8d
or rcx, r9
movzx eax, ax
or edx, eax
mov r9d, ebx
shl r9, 0x10
or r9, rcx
mov word [rsp + 0x68], dx
mov qword [rsp + 0x6a], r9
mov byte [rsp + 0x73], r13b
cmp al, 0x80
jne 0x14015cc83
mov sil, pe_nt_image_headers64
jmp 0x14015cc54
lea rax, [rsp + 0x68]
mov dword [rax + 8], 0
mov qword [rax], 0
xor r12d, r12d
xor r13d, r13d
xor ebp, ebp
xor esi, esi
mov rcx, rdi
mov edx, ebx
call qword [r15 + 0x20]
mov ebx, r12d
mov r8d, ebp
test al, al
jne 0x14015d021
cmp sil, 0x80
je 0x14015cc20
cmp r8b, r13b
jae 0x14015ccc0
lea ebp, [r8 + 1]
mov byte [rsp + 0x72], bpl
movzx r14d, r8b
cmp r8b, 0xa
jae 0x14015d0a8
mov r12d, ebx
movzx eax, byte [rsp + r14 + 0x68]
mov ebx, eax
jmp 0x14015cc3d
movzx r14d, r8b
movzx esi, r13b
nop dword [rax + rax]
cmp r14, rsi
jae 0x14015ccc0
lea eax, [r14 + 1]
mov byte [rsp + 0x72], al
cmp r14, 9
ja 0x14015d0a8
movzx edx, byte [rsp + r14 + 0x68]
mov rcx, rdi
call qword [r15 + 0x20]
inc r14
test al, al
je 0x14015cc90
jmp 0x14015d021
mov r12, qword [rsp + 0xb0]
cmp r12, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xc8]
jne 0x14015cae1
jmp 0x14015ce4e
add r12, 3
mov qword [rsp + 0xb0], r12
shl eax, 0xc
or ecx, eax
mov ebx, ecx
mov r13b, 2
mov ax, 0x5c
cmp ebx, 0x27
jbe 0x14015cb05
jmp case.default.0x14015cb15
mov byte [rsp + 0x3a], 0
mov word [rsp + 0x38], 0
mov byte [rsp + 0x41], 0x7d
mov eax, ebx
shr eax, 0x14
lea rcx, [0x14019e363]
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x3b], al
mov eax, ebx
shr eax, 0x10
and eax, 0xf
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x3c], al
mov eax, ebx
shr eax, 0xc
and eax, 0xf
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x3d], al
mov eax, ebx
shr eax, 8
and eax, 0xf
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x3e], al
mov eax, ebx
shr eax, 4
and eax, 0xf
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x3f], al
mov eax, ebx
and eax, 0xf
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x40], al
or ebx, 1
bsr eax, ebx
xor eax, 0x1c
shr eax, 2
lea r8, [rax - 2]
mov byte [rsp + rax + 0x38], 0x7b
mov word [rsp + rax + 0x36], 0x755c
movzx ecx, word [rsp + 0x38]
movzx eax, cl
mov edx, ecx
and edx, 0xff00
mov rbx, qword [rsp + 0x3a]
mov rcx, rbx
movzx r9d, bx
shr rbx, 0x10
movabs r10, 0xffff000000000000
and rcx, r10
mov r13b, 0xa
jmp 0x14015cbf5
mov r14d, esi
shr r14d, 0x18
shr esi, 0x10
cmp bpl, 0x80
jne 0x14015cf86
mov r13b, pe_nt_image_headers64
jmp 0x14015ce20
lea rax, [rsp + 0x68]
mov dword [rax + 8], 0
mov qword [rax], 0
xor esi, esi
xor r14d, r14d
xor ebp, ebp
xor r13d, r13d
mov rcx, rdi
call qword [r15 + 0x20]
mov edx, esi
mov esi, ebp
test al, al
jne 0x14015d021
cmp r13b, 0x80
je 0x14015cdf0
cmp sil, r14b
jae 0x14015cac2
lea ebp, [rsi + 1]
mov byte [rsp + 0x72], bpl
movzx ebx, sil
cmp sil, 0xa
jae 0x14015d092
mov esi, edx
movzx edx, byte [rsp + rbx + 0x68]
jmp 0x14015ce0d
movzx eax, byte [rsp + 0x2d]
cmp al, 0x81
je 0x14015ca89
mov esi, r8d
shr esi, 0x18
shr r8d, 0x10
cmp al, 0x80
jne 0x14015d03b
mov rcx, r8
mov bpl, pe_nt_image_headers64
jmp 0x14015cebb
lea rax, [rsp + 0x74]
mov dword [rax + 8], 0
mov qword [rax], 0
xor r12d, r12d
xor esi, esi
xor r13d, r13d
xor ebp, ebp
mov edx, dword [rsp + 0x44]
mov rcx, rdi
call qword [r15 + 0x20]
mov r14b, 1
mov dword [rsp + 0x44], r12d
mov ecx, r13d
test al, al
jne 0x14015d024
cmp bpl, 0x80
je 0x14015ce80
cmp cl, sil
mov r12d, dword [rsp + 0x44]
jae 0x14015ca89
lea r13d, [rcx + 1]
mov byte [rsp + 0x7e], r13b
movzx ebx, cl
cmp cl, 0xa
jae 0x14015d092
movzx edx, byte [rsp + rbx + 0x74]
jmp 0x14015cea1
mov r12d, ecx
shr r12d, 0x18
shr ecx, 0x10
cmp al, 0x80
jne 0x14015cfd0
mov rax, qword [rsp + 0xa8]
mov r14, qword [rax + 0x20]
mov r13, qword [rax + 0x28]
mov dil, pe_nt_image_headers64
mov edx, dword [rsp + 0xbc]
jmp 0x14015cf52
lea rax, [rsp + 0x8c]
mov dword [rax + 8], 0
mov qword [rax], 0
xor ebx, ebx
xor r12d, r12d
xor ebp, ebp
xor edi, edi
mov rcx, r14
call qword [r13 + 0x20]
mov edx, ebx
mov ecx, ebp
test al, al
jne 0x14015d021
cmp dil, 0x80
je 0x14015cf20
cmp cl, r12b
jae 0x14015ca46
lea ebp, [rcx + 1]
mov byte [rsp + 0x96], bpl
movzx r15d, cl
cmp cl, 0xa
jae 0x14015d07c
mov ebx, edx
movzx edx, byte [rsp + r15 + 0x8c]
jmp 0x14015cf3f
movzx ebx, sil
mov esi, r14d
mov ebp, ebx
inc bpl
nop word cs:[rax + rax]
cmp rbx, rsi
jae 0x14015cac2
mov byte [rsp + 0x72], bpl
cmp rbx, 9
ja 0x14015d092
movzx edx, byte [rsp + rbx + 0x68]
mov rcx, rdi
call qword [r15 + 0x20]
inc bpl
inc rbx
test al, al
je 0x14015cfa0
jmp 0x14015d021
movzx r15d, cl
mov ebx, r12d
mov rax, qword [rsp + 0xa8]
mov rdi, qword [rax + 0x20]
mov r14, qword [rax + 0x28]
mov ebp, r15d
inc bpl
nop dword [rax]
cmp r15, rbx
jae 0x14015ca46
mov byte [rsp + 0x96], bpl
cmp r15, 9
ja 0x14015d07c
movzx edx, byte [rsp + r15 + 0x8c]
mov rcx, rdi
call qword [r14 + 0x20]
inc bpl
inc r15
test al, al
je 0x14015cff0
mov r14b, 1
mov eax, r14d
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx ebx, r8b
mov esi, esi
mov ebp, ebx
inc bpl
nop word cs:[rax + rax]
cmp rbx, rsi
setb r14b
jae 0x14015d024
mov byte [rsp + 0x7e], bpl
cmp rbx, 9
ja 0x14015d092
movzx edx, byte [rsp + rbx + 0x74]
mov rcx, rdi
call qword [r15 + 0x20]
inc bpl
inc rbx
test al, al
je 0x14015d050
jmp 0x14015d024
lea r8, [0x1401a0758]
mov edx, 0xa
mov rcx, r15
call dbg.panic_bounds_check
ud2
lea r8, [0x1401a0758]
mov edx, 0xa
mov rcx, rbx
call dbg.panic_bounds_check
ud2
lea r8, [0x1401a0758]
mov edx, 0xa
mov rcx, r14
call dbg.panic_bounds_check
ud2