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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
lea rax, [0x140160d90]
mov esi, dword [rdx + 8]
cmp byte [rcx + 0x1cf], 0
mov qword [rsp + 0x118], rdx
lea rdx, [0x140160d50]
mov r13, rcx
cmovne rax, rdx
mov dword [rsp + 0x8c], esi
mov qword [rsp + 0x58], rax
test esi, esi
je 0x14022e250
mov rax, qword [rsp + 0x118]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x78], rax
mov eax, dword [rax + 0x10]
mov esi, eax
mov dword [rsp + 0x98], eax
and esi, 2
mov dword [rsp + 0x90], esi
mov esi, eax
and esi, 1
mov dword [rsp + 0x60], esi
mov esi, eax
and esi, 4
mov dword [rsp + 0x64], esi
mov esi, eax
and esi, 8
mov dword [rsp + 0x9c], esi
mov esi, eax
and eax, 0x20
mov dword [rsp + 0x74], eax
mov rax, qword [rsp + 0x118]
and esi, 0x10
mov dword [rsp + 0x94], esi
mov rax, qword [rax]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x118]
mov r14d, dword [rax + 0xc]
mov r15d, r14d
test r15d, r15d
jle 0x14022e04c
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x118]
xor ebx, ebx
jmp 0x14022dffe
cmp byte [r12 + 5], 0
je 0x14022e02d
mov qword [r12 + 0x28], 0
mov r15d, dword [rdi + 0xc]
add rbx, 1
cmp r15d, ebx
jle 0x14022e04c
mov r12, qword [rsi + rbx*8]
cmp byte [r12 + 4], 0
jne 0x14022dfe0
mov rdx, r12
mov rcx, r13
call fcn.14022db10
test eax, eax
je 0x14022dff1
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [r12 + 0x28]
call fcn.14015d2f0
mov rcx, qword [r12 + 0x38]
call fcn.1401cc8a0
mov qword [r12 + 0x38], 0
jmp 0x14022dfe8
mov eax, dword [rsp + 0x8c]
lea ebp, [rax - 1]
cmp eax, r15d
cmove r15d, ebp
mov esi, r15d
sub esi, 1
js 0x14022e0dc
sub eax, 2
mov qword [rsp + 0x110], r13
movsxd rdi, esi
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x28]
lea r15, [rax + 8]
cmp esi, ebp
jge 0x14022e0c8
mov rax, qword [rsp + 0x28]
lea r13, [rax + rdi*8]
mov eax, dword [rsp + 0x20]
sub eax, esi
add rax, rdi
lea rbx, [r15 + rax*8]
jmp 0x14022e0b1
mov qword [r13 + 8], r14
add r13, 8
mov qword [r13 - 8], r12
cmp rbx, r13
je 0x14022e0c8
mov r12, qword [r13 + 8]
mov r14, qword [r13]
mov rdx, r12
mov rcx, r14
call fcn.14015ca90
test eax, eax
jns 0x14022e0a0
sub esi, 1
sub rdi, 1
cmp esi, 0xffffffff
jne 0x14022e080
mov r13, qword [rsp + 0x110]
mov rax, qword [rsp + 0x118]
mov dword [rax + 0xc], 0
mov rax, qword [rsp + 0x28]
mov r12, qword [rax]
cmp qword [r12 + 0x28], 0
je 0x14022e250
mov rax, qword [rsp + 0x118]
mov ebx, dword [r12 + 0x48]
mov rsi, qword [r12 + 0x50]
mov r8d, dword [rsp + 0x94]
mov dword [rax + 0x40], ebx
mov qword [rax + 0x38], rsi
mov rax, qword [rsp + 0x78]
mov rdx, qword [rax]
test r8d, r8d
jne 0x14022e160
test rdx, rdx
je 0x14022e160
movsxd r8, dword [rax + 8]
cmp ebx, r8d
jl 0x14022e250
jle 0x14022e150
mov ecx, dword [rsp + 0x9c]
test ecx, ecx
je 0x14022e250
mov rcx, rsi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x14022e250
mov eax, dword [rsp + 0x8c]
cmp eax, 1
jle 0x14022e84c
mov rdi, qword [rsp + 0x28]
movsxd rbp, ebx
mov r15d, 1
add rdi, 8
mov qword [rsp + 0x20], rdi
mov r14, rdi
mov edi, eax
mov rax, rbp
mov ebp, r15d
mov r15, rax
jmp 0x14022e1c7
cmp ebx, dword [rax + 0x48]
jne 0x14022e1d1
mov rdx, qword [rax + 0x50]
mov r8, r15
mov rcx, rsi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x14022e1d1
add ebp, 1
add r14, 8
cmp edi, ebp
je 0x14022e2c8
mov rax, qword [r14]
cmp qword [rax + 0x28], 0
jne 0x14022e1a0
cmp ebp, 1
mov r15d, ebp
sete al
mov edx, dword [rsp + 0x90]
test edx, edx
sete byte [rsp + 0x73]
test byte [rsp + 0x98], 0x22
jne 0x14022e829
test al, al
je 0x14022e829
cmp byte [r13 + 0x1cf], 0
mov rax, qword [r12 + 0x40]
je 0x14022e257
test rax, rax
jne 0x14022e837
mov eax, dword [r12 + 0x68]
mov rsi, qword [rsp + 0x118]
mov r12, qword [r12 + 0x60]
mov dword [rsi + 0x50], eax
mov rax, qword [rsp + 0x118]
mov qword [rax + 0x48], r12
mov rax, qword [rsp + 0x118]
mov dword [rax + 0xc], 1
mov eax, 0x64
jmp 0x14022e019
xor eax, eax
jmp 0x14022e019
movsxd rbx, dword [r12 + 0x68]
mov rsi, qword [rsp + 0x118]
mov r12, qword [r12 + 0x60]
mov dword [rsi + 0x50], ebx
test rax, rax
je 0x14022e22b
mov rcx, qword [rsi + 0x18]
cmp rbx, qword [rsi + 0x20]
jle 0x14022e2a0
lea rdx, [rbx + rbx]
mov qword [rsi + 0x20], rdx
call fcn.1401a1ee0
mov rcx, rax
mov rax, qword [rsp + 0x118]
test rcx, rcx
je 0x14022e85c
mov qword [rax + 0x18], rcx
mov r8, rbx
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x118]
mov rax, qword [rax + 0x18]
mov qword [rsi + 0x48], rax
jmp 0x14022e237
mov eax, dword [rsp + 0x90]
mov rdi, qword [rsp + 0x20]
mov r15d, ebp
test eax, eax
sete byte [rsp + 0x73]
lea eax, [r15 - 1]
mov rdx, r12
lea rbx, [rdi + rax*8]
jmp 0x14022e2f7
mov rdx, qword [rdi]
add rdi, 8
movzx ecx, byte [r13 + 0x1cf]
call fcn.1401cdfd0
cmp rbx, rdi
jne 0x14022e2f0
mov rsi, qword [rsp + 0x28]
mov r9, qword [rsp + 0x58]
mov edx, r15d
mov r8d, r15d
mov rcx, rsi
call fcn.14015ac10
mov rdx, qword [rsi]
mov rax, rsi
cmp qword [rdx + 0x70], 0
je 0x14022e5ca
lea rsi, [rsp + 0xac]
add rax, 8
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rsi
lea rsi, [rsp + 0xb0]
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x68], rax
nop word cs:[rax + rax]
mov r9, qword [rsp + 0x48]
mov rcx, r13
mov r8, qword [rsp + 0x50]
mov qword [rsp + 0xb0], 0
mov dword [rsp + 0xac], 0
mov rsi, qword [rdx + 0x80]
call fcn.1401ce080
cmp r15d, 1
je 0x14022e815
mov rdi, qword [rsp + 0x68]
mov ebx, 1
jmp 0x14022e3e3
cmp qword [rdx + 0x80], rsi
jne 0x14022e3ed
xor r9d, r9d
xor r8d, r8d
mov rcx, r13
add ebx, 1
call fcn.1401ce080
add rdi, 8
cmp ebx, r15d
je 0x14022e3ed
mov rdx, qword [rdi]
cmp qword [rdx + 0x70], 0
jne 0x14022e3c0
mov r14d, dword [rsp + 0x64]
test r14d, r14d
jne 0x14022e668
cmp byte [rsp + 0x73], 0
jne 0x14022e413
mov r12d, dword [rsp + 0xac]
test r12d, r12d
jle 0x14022e598
cmp byte [r13 + 0x1cf], 0
je 0x14022e753
mov ebp, dword [rsp + 0x20]
test ebp, ebp
jle 0x14022e658
mov rax, qword [rsp + 0x40]
cmp rsi, rax
jge 0x14022e76a
mov r14, rax
sub r14, rsi
mov rax, r14
xor edx, edx
nop word cs:[rax + rax]
add edx, 1
shr rax, 7
jne 0x14022e450
mov r11d, dword [rsp + 0x60]
test r11d, r11d
je 0x14022e46e
mov eax, dword [rsp + 0xac]
lea edx, [rdx + rax + 1]
movsxd rdi, dword [rsp + 0x20]
movsxd rdx, edx
lea rax, [rdx + rdi + 0x14]
mov rdx, qword [rsp + 0x118]
mov rcx, qword [rdx + 0x18]
cmp rax, qword [rdx + 0x20]
jg 0x14022e721
mov r10d, dword [rsp + 0x74]
lea rax, [rcx + rdi]
mov qword [rsp + 0x30], rax
test r10d, r10d
je 0x14022e690
mov rax, qword [rsp + 0xb0]
movsxd rdi, dword [rsp + 0xac]
mov dword [rsp + 0x3c], 0
xor r11d, r11d
movzx ecx, byte [rax]
add rdi, rax
cmp cl, 1
je 0x14022e7b4
cmp cl, 2
je 0x14022e7c2
test cl, 0xfe
je 0x14022e4f6
add rax, 1
mov edx, ecx
movzx ecx, byte [rax]
and edx, 0xffffff80
or edx, ecx
and edx, 0xfe
jne 0x14022e4e0
cmp rdi, rax
jbe 0x14022e56d
mov dword [rsp + 0x88], ebx
lea r12, [rsp + 0xb8]
mov ebp, r11d
mov qword [rsp + 0x80], r14
mov r14, qword [rsp + 0x30]
nop word [rax + rax]
lea rbx, [rax + 1]
mov rdx, r12
mov rcx, rbx
call fcn.14015a2b0
cdqe
add rax, rbx
movzx ecx, byte [rax]
cmp cl, 2
je 0x14022e5e0
test cl, 0xfe
je 0x14022e55e
nop dword [rax]
and ecx, 0xffffff80
add rax, 1
mov edx, ecx
movzx ecx, byte [rax]
or edx, ecx
and edx, 0xfe
jne 0x14022e548
cmp rdi, rax
ja 0x14022e520
mov ebx, dword [rsp + 0x88]
mov r11d, ebp
mov r8d, dword [rsp + 0x3c]
test r8d, r8d
je 0x14022e589
mov rdx, qword [rsp + 0x30]
movsxd rax, r11d
mov byte [rdx + rax], 0
lea eax, [rax + 1]
mov r11d, eax
test r11d, r11d
je 0x14022e598
add dword [rsp + 0x20], r11d
mov qword [rsp + 0x40], rsi
mov rsi, qword [rsp + 0x28]
mov r9, qword [rsp + 0x58]
mov edx, r15d
mov r8d, ebx
mov rcx, rsi
call fcn.14015ac10
mov rdx, qword [rsi]
cmp qword [rdx + 0x70], 0
jne 0x14022e370
mov edx, dword [rsp + 0x20]
test edx, edx
jg 0x14022e87d
mov rax, qword [rsp + 0x118]
mov dword [rax + 0xc], r15d
jmp 0x14022dfc5
mov r9d, dword [rsp + 0x3c]
test r9d, r9d
je 0x14022e774
lea r11d, [rbp + 1]
movsxd rbp, ebp
mov byte [r14 + rbp], 1
movsxd rbp, r11d
mov rdx, qword [rsp + 0xb8]
add rbp, r14
mov rcx, rbp
nop dword [rax + rax]
mov r8d, edx
mov r10, rcx
mov r9d, edx
add rcx, 1
or r8d, 0xffffff80
shr rdx, 7
mov byte [rcx - 1], r8b
jne 0x14022e610
sub rcx, rbp
and r9d, 0x7f
mov dword [rsp + 0x3c], 1
add ecx, r11d
mov byte [r10], r9b
lea ebp, [rcx + 1]
movsxd rcx, ecx
mov byte [r14 + rcx], 2
movzx ecx, byte [rax]
jmp 0x14022e540
mov r14, rsi
sub r14, qword [rsp + 0x40]
jmp 0x14022e441
mov rax, qword [rsp + 0x78]
mov r9, qword [rsp + 0x48]
xor edx, edx
mov r8, qword [rsp + 0x50]
mov ecx, dword [rax + 0xc]
call fcn.14015b590
jmp 0x14022e3fb
mov rax, qword [rsp + 0x30]
nop dword [rax]
mov edx, r14d
mov r9, rax
mov ecx, r14d
add rax, 1
or edx, 0xffffff80
shr r14, 7
mov byte [rax - 1], dl
jne 0x14022e698
and ecx, 0x7f
sub rax, qword [rsp + 0x30]
mov qword [rsp + 0x40], rsi
mov byte [r9], cl
mov ecx, dword [rsp + 0x60]
add dword [rsp + 0x20], eax
test ecx, ecx
je 0x14022e598
movsxd rcx, dword [rsp + 0x20]
mov rax, qword [rsp + 0x118]
mov rdx, qword [rsp + 0xb0]
movsxd r8, dword [rsp + 0xac]
mov rsi, rcx
add rcx, qword [rax + 0x18]
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0xac]
add eax, esi
lea esi, [rax + 1]
cdqe
mov dword [rsp + 0x20], esi
mov rsi, qword [rsp + 0x118]
mov rdx, qword [rsi + 0x18]
mov byte [rdx + rax], 0
jmp 0x14022e598
lea rdx, [rax + rax]
mov rax, qword [rsp + 0x118]
mov qword [rax + 0x20], rdx
call fcn.1401a1ee0
mov rcx, rax
test rax, rax
je 0x14022e81f
mov rax, qword [rsp + 0x118]
mov qword [rax + 0x18], rcx
jmp 0x14022e491
mov edi, dword [rsp + 0x20]
test edi, edi
jle 0x14022e658
cmp rsi, qword [rsp + 0x40]
jg 0x14022e658
mov eax, 0x10b
jmp 0x14022e019
movsxd r10, ebp
mov rdx, qword [rsp + 0x80]
add r10, r14
mov rcx, r10
nop dword [rax]
mov r8d, edx
mov r11, rcx
mov r9d, edx
add rcx, 1
or r8d, 0xffffff80
shr rdx, 7
mov byte [rcx - 1], r8b
jne 0x14022e788
and r9d, 0x7f
sub rcx, r10
mov byte [r11], r9b
add ebp, ecx
jmp 0x14022e5ee
cmp rax, rdi
jb 0x14022e4fb
jmp 0x14022e598
mov rcx, qword [rsp + 0x30]
mov rdx, r14
nop word [rax + rax]
mov r8d, edx
mov r11, rcx
mov r10d, edx
add rcx, 1
or r8d, 0xffffff80
shr rdx, 7
mov byte [rcx - 1], r8b
jne 0x14022e7d0
mov rdx, qword [rsp + 0x30]
and r10d, 0x7f
mov dword [rsp + 0x3c], 1
mov byte [r11], r10b
sub rcx, rdx
lea r11d, [rcx + 1]
movsxd rcx, ecx
mov byte [rdx + rcx], 2
movzx ecx, byte [rax]
jmp 0x14022e4db
mov ebx, 1
jmp 0x14022e3ed
mov eax, 7
jmp 0x14022e019
mov rax, qword [rsp + 0x28]
lea rdi, [rax + 8]
jmp 0x14022e2de
movzx ecx, byte [r13 + 0x1cf]
mov rdx, r12
call fcn.1401cdfd0
jmp 0x14022e309
mov eax, 1
mov r15d, 1
jmp 0x14022e1da
mov rax, qword [rax + 0x18]
mov rsi, qword [rsp + 0x118]
mov qword [rsi + 0x48], rax
mov eax, 7
mov dword [rsi + 0xc], 1
jmp 0x14022e019
movsxd rbx, dword [rsp + 0x20]
mov rax, qword [rsp + 0x118]
mov r14d, r15d
lea rdx, [rbx + 0x14]
cmp rdx, qword [rax + 0x20]
jg 0x14022e8e1
mov rax, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x118]
add rbx, qword [rax + 0x18]
mov qword [rbx], 0
mov qword [rbx + 8], 0
mov dword [rbx + 0x10], 0
mov rax, qword [rax + 0x18]
mov qword [rsi + 0x48], rax
mov rax, rsi
mov esi, dword [rsp + 0x20]
mov dword [rax + 0xc], r14d
mov dword [rax + 0x50], esi
mov eax, 0x64
jmp 0x14022e019
add rdx, rdx
mov rcx, qword [rax + 0x18]
mov qword [rax + 0x20], rdx
call fcn.1401a1ee0
test rax, rax
je 0x14022e81f
mov rsi, qword [rsp + 0x118]
mov qword [rsi + 0x18], rax
jmp 0x14022e897