Function at 0x140226a00
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
mov r15, qword [rcx + 8]
mov dword [rsp + 0x60], r8d
mov rbp, rcx
mov r12, rdx
mov ebx, r9d
mov dword [rsp + 0x84], r9d
test byte [rcx + 1], 0x20
je 0x140226adc
mov rax, qword [r15 + 8]
mov edx, dword [rcx + 0x50]
mov r8, rbp
mov rcx, qword [rax + 0x10]
call fcn.14021f7b0
mov dword [rsp + 0x80], eax
mov r11d, eax
test eax, eax
jne 0x140227536
test ebx, ebx
je 0x140226a70
cmp byte [rbp + 0x54], 0
mov ecx, 0x1349a
jns 0x140226ab6
jmp 0x140226d2c
cmp byte [rbp], 2
jbe 0x140226a94
mov rcx, rbp
call fcn.14020dc20
mov dword [rsp + 0x80], eax
mov r11d, eax
test eax, 0xffffffef
je 0x140226ae1
jmp 0x140227536
mov rax, qword [rbp + 0x80]
test rax, rax
jne 0x140226ba1
cmp byte [r15 + 0x13], 0
jne 0x140226af8
test byte [rbp + 1], 2
jne 0x140226b11
jmp 0x140226b60
cmp byte [rbp], 2
ja 0x140226a76
cmp qword [rbp + 0x80], 0
jne 0x140226c92
cmp byte [r15 + 0x13], 0
jne 0x140226af8
test byte [rbp + 1], 2
jne 0x140226b11
jmp 0x140226c92
cmp byte [rcx], 2
ja 0x140226a76
mov rax, qword [rbp + 0x80]
test rax, rax
jne 0x140226b99
cmp byte [r15 + 0x13], 0
je 0x140226b0b
mov edx, dword [rbp + 0x50]
mov r8, qword [r12 + 8]
xor r9d, r9d
mov rcx, r15
call fcn.140206e40
test byte [rbp + 1], 2
je 0x140226b58
mov rax, qword [rbp + 0x30]
cmp qword [r12 + 8], rax
jne 0x140226b58
cmp word [rbp + 0x46], 0
je 0x140226c92
mov eax, dword [r12 + 0x28]
add eax, dword [r12 + 0x24]
cmp dword [rbp + 0x40], eax
jne 0x140226c92
mov rdx, r12
mov rcx, rbp
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401d94b0
test ebx, ebx
jne 0x140226c92
mov r8d, dword [rsp + 0x60]
mov rdx, qword [r12 + 8]
lea r9, [rsp + 0x84]
mov rcx, rbp
shr r8d, 3
and r8d, 1
call fcn.140228bd0
mov dword [rsp + 0x80], eax
mov r11d, eax
test eax, eax
je 0x140226c92
jmp 0x140227536
test ebx, ebx
jne 0x140226c92
test byte [rsp + 0x60], 2
je 0x140226bbb
cmp dword [rsp + 0x84], 0
je 0x140226c4c
jmp 0x140226c92
mov edx, dword [r12 + 0x20]
lea r8, [rsp + 0x84]
test dx, dx
je 0x140226c0c
mov qword [rsp + 0x90], rax
mov rax, qword [r12 + 0x18]
mov rcx, rbp
mov word [rsp + 0xac], dx
lea rdx, [rsp + 0x90]
mov qword [rsp + 0x98], rax
mov byte [rsp + 0xae], 0
mov byte [rsp + 0xb2], 0
call fcn.1402265d0
jmp 0x140226c2f
mov r9d, dword [rsp + 0x60]
mov qword [rsp + 0x20], r8
mov rcx, rbp
mov r8, qword [r12 + 8]
mov rdx, qword [r12]
shr r9d, 3
and r9d, 1
call fcn.1401d92e0
mov dword [rsp + 0x80], eax
mov r11d, dword [rsp + 0x80]
test r11d, r11d
je 0x140226ba8
jmp 0x140227536
mov rcx, rbp
call fcn.140205300
mov rax, qword [r12 + 8]
cmp qword [rbp + 0x30], rax
jne 0x140226c92
mov rdx, qword [r12]
mov rcx, rbp
xor r12d, r12d
mov dword [rsp + 0xb4], eax
mov dword [rsp + 0xb8], r12d
mov qword [rsp + 0xa0], rdx
lea rdx, [rsp + 0x90]
call fcn.1401d94b0
jmp 0x140226e51
mov r14, qword [rbp + 0x88]
cmp dword [r14 + 0x14], 0
jns 0x140226cc6
cmp byte [rbp], 1
jbe 0x140226e59
mov ecx, 0x13515
call fcn.14022ad00
mov dword [rsp + 0x80], eax
mov r11d, eax
test eax, eax
jne 0x140227536
mov rax, qword [r15 + 8]
mov rdi, qword [rax + 0x88]
mov qword [rsp + 0x38], rdi
test byte [rsp + 0x60], 0x80
je 0x140226ee0
mov ebx, dword [rax + 0x90]
mov edx, 4
xor edi, edi
mov dword [rsp + 0x80], edi
cmp ebx, edx
cmovl ebx, edx
cmp byte [rax + 0x21], 0
jne 0x140226e66
movzx r13d, word [rbp + 0x56]
cmp dword [rsp + 0x84], 0
mov word [rbp + 0x46], 0
mov eax, r13d
jne 0x14022724e
cmp r13w, word [r14 + 0x18]
jb 0x140226d44
mov ecx, 0x1353c
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14022ad00
mov rcx, qword [r14 + 0x70]
call fcn.140245de0
mov dword [rsp + 0x80], eax
mov r11d, eax
test eax, eax
jne 0x14022752e
mov rdx, qword [r14 + 0x60]
lea eax, [r13 + r13]
cdqe
movzx edi, word [rdx + rax]
rol di, 8
and di, word [r14 + 0x1a]
movzx edi, di
add rdi, qword [r14 + 0x50]
cmp byte [r14 + 8], 0
mov rdx, rdi
jne 0x140226d91
mov eax, dword [rdi]
mov rdi, qword [rsp + 0x38]
mov dword [rdi], eax
mov dword [rsp + 0x48], r11d
lea r8, [rsp + 0x90]
mov rcx, r14
mov qword [rsp + 0x40], rdx
call qword [r14 + pe_nt_image_headers64]
xor eax, eax
movzx ecx, word [rsp + 0xa4]
mov r8d, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0x40]
mov r11d, dword [rsp + 0x48]
cmp ecx, r8d
mov r9d, ecx
je 0x140226df0
mov ax, word [rsp + 0xa6]
mov rcx, r14
mov word [rsp + 0x20], ax
call fcn.1401dadb0
mov r11d, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
movzx r8d, word [rsp + 0xa6]
and byte [rbp + 1], 0xfb
mov dword [rsp + 0x80], eax
cmp r8d, ebx
jne 0x14022722c
movzx eax, word [rsp + 0xa4]
cmp eax, dword [rsp + 0xa0]
jne 0x14022722c
mov rax, qword [r15 + 8]
cmp byte [rax + 0x21], 0
jne 0x1402271f7
mov rcx, qword [r14 + 0x50]
movzx eax, byte [r14 + 9]
lea rax, [rcx + rax + 0xa]
mov ecx, 0x13557
cmp rdx, rax
jae 0x140227205
call fcn.14022ad00
mov r11d, eax
jmp 0x140227536
mov rcx, r14
call fcn.1401d8af0
jmp 0x140226cb4
movzx eax, word [r14 + 0xe]
cmp eax, ebx
jge 0x140226d04
mov rdx, qword [rsp + 0x38]
lea r8, [rsp + 0x90]
mov rcx, r14
call qword [r14 + pe_nt_image_headers64]
movzx eax, word [rsp + 0xa4]
cmp dword [rsp + 0xa0], eax
je 0x140226d04
mov rdi, qword [rsp + 0x38]
movsxd rax, ebx
mov r9d, dword [r14 + 4]
mov r8d, 3
mov rcx, qword [r15 + 8]
mov edx, dword [rdi + rax - 4]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
bswap edx
call fcn.1402153f0
cmp dword [rsp + 0x80], 0
je 0x140226d04
jmp 0x14022752e
movzx r11d, byte [r14 + 0xa]
mov rax, qword [rsp + 0x38]
mov rcx, r11
add rcx, rax
cmp byte [r14 + 1], 0
je 0x140226f47
mov eax, dword [r12 + 0x24]
mov r13d, dword [r12 + 0x28]
mov dword [rsp + 0x40], eax
add r13d, eax
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0x50], rax
cmp r13d, 0x7f
ja 0x140226f1f
mov byte [rcx], r13b
mov al, 1
jmp 0x140226f27
movsxd rdx, r13d
call fcn.14024d970
movzx ebx, al
mov rax, qword [rsp + 0x38]
mov rdx, qword [r12 + 8]
add ebx, r11d
movsxd rcx, ebx
add rcx, rax
call fcn.14024d970
lea ecx, [rbx + rax]
jmp 0x140226f77
mov rsi, qword [r12 + 8]
mov rax, qword [r12]
mov r13d, esi
mov qword [rsp + 0x50], rax
cmp esi, 0x7f
ja 0x140226f64
mov byte [rcx], sil
mov al, 1
jmp 0x140226f6c
movsxd rdx, esi
call fcn.14024d970
mov dword [rsp + 0x40], esi
movzx ebx, al
lea ecx, [rbx + r11]
mov rax, qword [rsp + 0x38]
movzx esi, word [r14 + 0xe]
movsxd r8, ecx
add r8, rax
cmp esi, r13d
jl 0x140226fbc
lea ebx, [rcx + r13]
mov eax, 4
movsxd rcx, dword [rsp + 0x40]
mov rdi, r8
mov rsi, qword [rsp + 0x50]
cmp ebx, eax
rep movsb byte [rdi], byte [rsi]
cmovl ebx, eax
mov eax, dword [rsp + 0x40]
sub r13d, eax
xor eax, eax
movsxd rcx, r13d
rep stosb byte [rdi], al
jmp 0x1402271e9
mov rbx, qword [r14 + 0x48]
movzx r11d, word [r14 + 0x10]
mov eax, r13d
xor edx, edx
mov edi, dword [rbx + 0x38]
sub eax, r11d
lea r9d, [rdi - 4]
div r9d
add edx, r11d
cmp esi, edx
mov rsi, qword [rsp + 0x38]
cmovl edx, r11d
xor r11d, r11d
mov dword [rsp + 0x8c], r11d
lea eax, [rcx + rdx]
mov dword [rsp + 0x64], eax
cdqe
add rax, rsi
xor esi, esi
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x8c]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x78], rax
cmp edx, r13d
mov r9d, r13d
mov eax, dword [rsp + 0x40]
cmovle r9d, edx
cmp r9d, eax
jg 0x140227044
mov rsi, qword [rsp + 0x50]
movsxd rcx, r9d
mov rdi, r8
rep movsb byte [rdi], byte [rsi]
jmp 0x14022706a
cmp dword [rsp + 0x40], 0
jle 0x140227060
mov ecx, dword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov rdi, r8
rep movsb byte [rdi], byte [rsi]
mov r9d, dword [rsp + 0x40]
jmp 0x14022706a
movsxd rcx, r9d
mov rdi, r8
xor eax, eax
rep stosb byte [rdi], al
sub r13d, r9d
test r13d, r13d
jle 0x1402271d8
movsxd rax, r9d
sub dword [rsp + 0x40], r9d
add qword [rsp + 0x50], rax
sub edx, r9d
je 0x14022708d
add r8, rax
jmp 0x140227022
xor r10d, r10d
mov esi, dword [rsp + 0x8c]
mov qword [rsp + 0x90], r10
cmp byte [rbx + 0x21], 0
jne 0x1402270e2
xor r9d, r9d
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rcx, rbx
mov dword [rsp + 0x20], r9d
mov r9d, dword [rsp + 0x8c]
call fcn.1401d42b0
cmp byte [rbx + 0x21], 0
mov dword [rsp + 0x88], eax
je 0x140227164
test eax, eax
jne 0x140227164
jmp 0x140227121
mov eax, dword [0x140288d80]
mov r11d, dword [rbx + 0x34]
mov dword [rsp + 0x68], eax
mov r10d, dword [rsp + 0x8c]
mov rcx, rbx
lea edi, [r10 + 1]
mov edx, edi
mov dword [rsp + 0x8c], edi
call fcn.1402153a0
cmp edi, eax
je 0x1402270f0
mov eax, dword [rsp + 0x68]
xor edx, edx
div r11d
cmp r10d, eax
je 0x1402270f0
jmp 0x1402270a5
cmp esi, 1
mov edx, dword [rsp + 0x8c]
mov r9d, esi
mov rcx, rbx
lea rax, [rsp + 0x88]
mov r8d, 3
mov qword [rsp + 0x20], rax
sbb r8d, 0xffffffff
call fcn.1402153f0
cmp dword [rsp + 0x88], 0
je 0x140227164
mov rcx, qword [rsp + 0x90]
call fcn.140216860
mov esi, dword [rsp + 0x88]
test esi, esi
je 0x140227185
mov rcx, qword [rsp + 0x48]
call fcn.140216860
mov dword [rsp + 0x80], esi
jmp 0x14022752e
mov eax, dword [rsp + 0x8c]
mov rsi, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
bswap eax
mov dword [rsi], eax
call fcn.140216860
mov rax, qword [rsp + 0x90]
xor r8d, r8d
mov qword [rsp + 0x48], rax
mov rax, qword [rax + 0x50]
mov dword [rax], r8d
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x50]
mov qword [rsp + 0x68], rax
lea r8, [rax + 4]
mov eax, dword [rbx + 0x38]
lea edx, [rax - 4]
jmp 0x140227022
mov ebx, dword [rsp + 0x64]
mov rcx, qword [rsp + 0x48]
add ebx, 4
call fcn.140216860
xor ecx, ecx
mov dword [rsp + 0x80], ecx
jmp 0x140226d04
movzx eax, word [r14 + 0x10]
cmp eax, ebx
jle 0x14022722c
jmp 0x140226e30
movsxd rax, ebx
add rax, rdx
cmp qword [r14 + 0x58], rax
jae 0x14022721b
mov ecx, 0x1355a
jmp 0x140226e4c
mov rsi, qword [rsp + 0x38]
mov ecx, ebx
mov rdi, rdx
rep movsb byte [rdi], byte [rsi]
jmp 0x140227536
lea r9, [rsp + 0x80]
mov edx, r13d
mov rcx, r14
call fcn.1401df8e0
cmp dword [rsp + 0x80], 0
je 0x140227266
jmp 0x14022752e
jns 0x140227266
cmp word [r14 + 0x18], 0
je 0x140227266
inc eax
and byte [rbp + 1], 0xfd
mov word [rbp + 0x56], ax
movzx r13d, ax
lea eax, [rbx + 1]
cmp eax, dword [r14 + 0x14]
jl 0x140227290
movzx eax, byte [r14 + 0xc]
mov rsi, qword [rsp + 0x38]
lea edx, [rax + 1]
mov byte [r14 + 0xc], dl
mov qword [r14 + rax*8 + 0x28], rsi
mov word [r14 + rax*2 + 0x1c], r13w
jmp 0x140227476
mov rcx, qword [r14 + 0x70]
call fcn.140245de0
test eax, eax
jne 0x1402274a6
mov r15, qword [r14 + 0x50]
movzx esi, byte [r14 + 9]
xor edx, edx
mov dword [rsp + 0x90], edx
movzx eax, word [r14 + 0x12]
lea r11, [r15 + rsi + 5]
movzx edx, word [r14 + 0x18]
mov r9w, word [r11]
lea edi, [rax + rdx*2]
rol r9w, 8
movzx r9d, r9w
cmp edi, r9d
jle 0x1402272f0
test r9d, r9d
jne 0x1402272e9
mov rax, qword [r14 + 0x48]
cmp dword [rax + 0x38], 0x10000
je 0x14022730c
mov ecx, 0x1176f
jmp 0x1402272ff
mov rax, qword [r14 + 0x48]
cmp r9d, dword [rax + 0x38]
jle 0x140227312
mov ecx, 0x11772
call fcn.14022ad00
xor r9d, r9d
jmp 0x1402273f1
mov r9d, 0x10000
cmp byte [r15 + rsi + 2], 0
jne 0x140227331
cmp byte [r15 + rsi + 1], 0
jne 0x140227331
lea eax, [rdi + rbx + 2]
cmp r9d, eax
jge 0x1402273de
jmp 0x140227397
lea eax, [rdi + 1]
cmp eax, r9d
jge 0x140227322
lea r8, [rsp + 0x90]
mov edx, ebx
mov rcx, r14
mov dword [rsp + 0x48], r9d
mov qword [rsp + 0x40], r11
call fcn.140210700
mov r11, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x48]
test rax, rax
je 0x140227387
sub rax, r15
mov r9d, eax
cmp edi, eax
jl 0x1402273f9
mov ecx, 0x11783
mov dword [rsp + 0x40], eax
call fcn.14022ad00
mov r9d, dword [rsp + 0x40]
jmp 0x1402273f1
mov eax, dword [rsp + 0x90]
test eax, eax
je 0x140227322
jmp 0x1402274a6
mov edx, dword [r14 + 0x14]
lea eax, [rbx + 2]
mov rcx, r14
mov qword [rsp + 0x40], r11
sub edx, eax
mov eax, 4
cmp edx, eax
cmovg edx, eax
call fcn.1401dedc0
test eax, eax
jne 0x1402274a6
mov r11, qword [rsp + 0x40]
movzx r9d, byte [r15 + rsi + 6]
movzx eax, byte [r11]
shl eax, 8
or r9d, eax
dec r9d
movzx r9d, r9w
inc r9d
sub r9d, ebx
mov eax, r9d
movzx eax, ah
mov byte [r11], al
mov byte [r15 + rsi + 6], r9b
jmp 0x1402273f9
test eax, eax
jne 0x1402274a6
lea eax, [rbx + 2]
mov rsi, qword [rsp + 0x38]
movsxd rcx, ebx
lea ebx, [r13 + r13]
movzx eax, ax
sub dword [r14 + 0x14], eax
movsxd rax, r9d
movsxd rbx, ebx
add rax, r15
mov dword [rsp + 0x40], r9d
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
movzx r8d, word [r14 + 0x18]
add rbx, qword [r14 + 0x60]
mov rdx, rbx
lea rcx, [rbx + 2]
sub r8d, r13d
add r8d, r8d
movsxd r8, r8d
call sub.msvcrt.dll_memmove
mov r9d, dword [rsp + 0x40]
rol r9w, 8
mov word [rbx], r9w
movzx eax, byte [r14 + 9]
inc word [r14 + 0x18]
lea rdx, [r15 + rax + 4]
inc byte [rdx]
jne 0x14022746c
movzx eax, byte [r14 + 9]
inc byte [r15 + rax + 3]
mov rax, qword [r14 + 0x48]
cmp byte [rax + 0x21], 0
jne 0x14022747a
xor eax, eax
jmp 0x1402274a6
mov r8, qword [rsp + 0x38]
xor eax, eax
mov rdx, r14
mov rcx, r14
lea r9, [rsp + 0x90]
mov dword [rsp + 0x90], eax
call fcn.1402154c0
mov eax, dword [rsp + 0x90]
test eax, eax
je 0x140227476
cmp byte [r14 + 0xc], 0
mov dword [rsp + 0x80], eax
je 0x14022752e
and byte [rbp + 1], 0xfd
mov rcx, rbp
call fcn.1401d65f0
mov rdx, qword [rbp + 0x88]
mov dword [rsp + 0x80], eax
mov byte [rdx + 0xc], 0
mov byte [rbp], 1
test byte [rsp + 0x60], 2
je 0x14022752e
test eax, eax
jne 0x14022752e
mov rcx, rbp
call fcn.1401d9ad0
cmp qword [rbp + 0x80], 0
je 0x140227521
mov rcx, qword [r12 + 8]
call fcn.140243cf0
mov qword [rbp + 0x18], rax
test rax, rax
jne 0x140227513
mov dword [rsp + 0x80], 7
jmp 0x140227521
mov rsi, qword [r12]
mov rcx, qword [r12 + 8]
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
mov byte [rbp], 3
mov rax, qword [r12 + 8]
mov qword [rbp + 0x48], rax
mov r11d, dword [rsp + 0x80]
mov eax, r11d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret