Function at 0x140208ec0
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 rbx, rcx
mov r13, rdx
mov esi, r9d
mov dword [rsp + 0x84], r9d
test byte [rcx + 1], 0x20
je 0x140208f9a
mov rax, qword [r15 + 8]
mov edx, dword [rcx + 0x50]
mov r8, rbx
mov rcx, qword [rax + 0x10]
call fcn.140201b00
mov dword [rsp + 0x80], eax
mov r14d, eax
test eax, eax
jne 0x1402097c4
test esi, esi
je 0x140208f30
cmp byte [rbx + 0x54], 0
mov ecx, 0x12eab
jns 0x140208f75
jmp 0x1402091de
cmp byte [rbx], 2
jbe 0x140208f53
mov rcx, rbx
call fcn.1401eff00
mov dword [rsp + 0x80], eax
mov r14d, eax
test eax, 0xffffffef
je 0x140208f9f
jmp 0x1402097c4
mov rax, qword [rbx + 0x80]
test rax, rax
jne 0x14020905a
cmp byte [r15 + 0x13], 0
jne 0x140208fb6
test byte [rbx + 1], 2
jne 0x140208fce
jmp 0x14020901a
cmp byte [rbx], 2
ja 0x140208f35
cmp qword [rbx + 0x80], 0
jne 0x140209145
cmp byte [r15 + 0x13], 0
jne 0x140208fb6
test byte [rbx + 1], 2
jne 0x140208fce
jmp 0x140209145
cmp byte [rcx], 2
ja 0x140208f35
mov rax, qword [rbx + 0x80]
test rax, rax
jne 0x140209052
cmp byte [r15 + 0x13], 0
je 0x140208fc8
mov edx, dword [rbx + 0x50]
mov r8, qword [r13 + 8]
xor r9d, r9d
mov rcx, r15
call fcn.1401ea850
test byte [rbx + 1], 2
je 0x140209012
mov rax, qword [rbx + 0x30]
cmp qword [r13 + 8], rax
jne 0x140209012
cmp word [rbx + 0x46], 0
je 0x140209145
mov eax, dword [r13 + 0x28]
add eax, dword [r13 + 0x24]
cmp dword [rbx + 0x40], eax
jne 0x140209145
mov rdx, r13
mov rcx, rbx
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401bf490
test esi, esi
jne 0x140209145
mov r8d, dword [rsp + 0x60]
mov rdx, qword [r13 + 8]
lea r9, [rsp + 0x84]
mov rcx, rbx
shr r8d, 3
and r8d, 1
call fcn.14020ae10
mov dword [rsp + 0x80], eax
mov r14d, eax
test eax, eax
je 0x140209145
jmp 0x1402097c4
test esi, esi
jne 0x140209145
test byte [rsp + 0x60], 2
je 0x140209074
cmp dword [rsp + 0x84], 0
je 0x140209102
jmp 0x140209145
mov edx, dword [r13 + 0x20]
lea r8, [rsp + 0x84]
test dx, dx
je 0x1402090c3
mov qword [rsp + 0x90], rax
mov rax, qword [r13 + 0x18]
mov rcx, rbx
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.140208b10
jmp 0x1402090e5
mov r9d, dword [rsp + 0x60]
mov qword [rsp + 0x20], r8
mov rcx, rbx
mov r8, qword [r13 + 8]
mov rdx, qword [r13]
shr r9d, 3
and r9d, 1
call fcn.1401bf2d0
mov dword [rsp + 0x80], eax
mov r14d, dword [rsp + 0x80]
test r14d, r14d
je 0x140209061
jmp 0x1402097c4
mov rcx, rbx
call fcn.1401e8dd0
mov rax, qword [r13 + 8]
cmp qword [rbx + 0x30], rax
jne 0x140209145
mov rdx, qword [r13]
xor ebp, ebp
mov rcx, rbx
mov dword [rsp + 0xb4], eax
mov dword [rsp + 0xb8], ebp
mov qword [rsp + 0xa0], rdx
lea rdx, [rsp + 0x90]
call fcn.1401bf490
jmp 0x1402092fa
mov r12, qword [rbx + 0x88]
cmp dword [r12 + 0x14], 0
jns 0x140209179
cmp byte [rbx], 1
jbe 0x140209302
mov ecx, 0x12f26
call fcn.14020d050
mov dword [rsp + 0x80], eax
mov r14d, eax
test eax, eax
jne 0x1402097c4
mov rax, qword [r15 + 8]
mov rsi, qword [rax + 0x88]
mov qword [rsp + 0x38], rsi
test byte [rsp + 0x60], 0x80
je 0x14020938c
mov ebp, dword [rax + 0x90]
mov edx, 4
xor edi, edi
mov dword [rsp + 0x80], edi
cmp ebp, edx
cmovl ebp, edx
cmp byte [rax + 0x21], 0
jne 0x14020930f
movzx esi, word [rbx + 0x56]
cmp dword [rsp + 0x84], 0
mov word [rbx + 0x46], 0
mov eax, esi
jne 0x140209701
cmp si, word [r12 + 0x18]
jb 0x1402091f6
mov ecx, 0x12f4d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14020d050
mov rcx, qword [r12 + 0x70]
call fcn.140227730
mov dword [rsp + 0x80], eax
mov r14d, eax
test eax, eax
jne 0x1402097bc
mov rdx, qword [r12 + 0x60]
lea eax, [rsi + rsi]
cdqe
movzx edi, word [rdx + rax]
rol di, 8
and di, word [r12 + 0x1a]
movzx edi, di
add rdi, qword [r12 + 0x50]
cmp byte [r12 + 8], 0
mov rdx, rdi
jne 0x140209246
mov eax, dword [rdi]
mov rdi, qword [rsp + 0x38]
mov dword [rdi], eax
mov qword [rsp + 0x40], rdx
lea r8, [rsp + 0x90]
mov rcx, r12
call qword [r12 + pe_nt_image_headers64]
xor eax, eax
movzx ecx, word [rsp + 0xa4]
mov r8d, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0x40]
cmp ecx, r8d
mov r9d, ecx
je 0x140209297
mov ax, word [rsp + 0xa6]
mov rcx, r12
mov word [rsp + 0x20], ax
call fcn.1401c0c10
mov rdx, qword [rsp + 0x40]
movzx r8d, word [rsp + 0xa6]
and byte [rbx + 1], 0xfb
mov dword [rsp + 0x80], eax
cmp r8d, ebp
jne 0x1402096e0
movzx eax, word [rsp + 0xa4]
cmp eax, dword [rsp + 0xa0]
jne 0x1402096e0
mov rax, qword [r15 + 8]
cmp byte [rax + 0x21], 0
jne 0x1402096a9
mov rcx, qword [r12 + 0x50]
movzx eax, byte [r12 + 9]
lea rax, [rcx + rax + 0xa]
mov ecx, 0x12f68
cmp rdx, rax
jae 0x1402096b8
call fcn.14020d050
mov r14d, eax
jmp 0x1402097c4
mov rcx, r12
call fcn.1401beae0
jmp 0x140209167
movzx eax, word [r12 + 0xe]
cmp eax, ebp
jge 0x1402091b7
mov rdx, qword [rsp + 0x38]
lea r8, [rsp + 0x90]
mov rcx, r12
call qword [r12 + pe_nt_image_headers64]
movzx eax, word [rsp + 0xa4]
cmp dword [rsp + 0xa0], eax
je 0x1402091b7
mov rsi, qword [rsp + 0x38]
movsxd rax, ebp
mov r9d, dword [r12 + 4]
mov r8d, 3
mov rcx, qword [r15 + 8]
mov edx, dword [rsi + rax - 4]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
bswap edx
call fcn.1401f7620
cmp dword [rsp + 0x80], 0
je 0x1402091b7
jmp 0x1402097bc
movzx r10d, byte [r12 + 0xa]
mov rax, qword [rsp + 0x38]
mov rcx, r10
add rcx, rax
cmp byte [r12 + 1], 0
je 0x1402093f2
mov eax, dword [r13 + 0x24]
mov r14d, dword [r13 + 0x28]
mov dword [rsp + 0x40], eax
add r14d, eax
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x50], rax
cmp r14d, 0x7f
ja 0x1402093ca
mov byte [rcx], r14b
mov al, 1
jmp 0x1402093d2
movsxd rdx, r14d
call fcn.14022f1b0
movzx ebp, al
mov rax, qword [rsp + 0x38]
mov rdx, qword [r13 + 8]
add ebp, r10d
movsxd rcx, ebp
add rcx, rax
call fcn.14022f1b0
lea ecx, [rbp + rax]
jmp 0x140209424
mov r11, qword [r13 + 8]
mov rax, qword [r13]
mov r14d, r11d
mov qword [rsp + 0x50], rax
cmp r11d, 0x7f
ja 0x14020940f
mov byte [rcx], r11b
mov al, 1
jmp 0x140209417
movsxd rdx, r11d
call fcn.14022f1b0
mov dword [rsp + 0x40], r11d
movzx ebp, al
lea ecx, [rbp + r10]
mov rax, qword [rsp + 0x38]
movzx r11d, word [r12 + 0xe]
movsxd r8, ecx
add r8, rax
cmp r11d, r14d
jl 0x14020946a
lea ebp, [rcx + r14]
mov eax, 4
movsxd rcx, dword [rsp + 0x40]
mov rdi, r8
mov rsi, qword [rsp + 0x50]
cmp ebp, eax
rep movsb byte [rdi], byte [rsi]
cmovl ebp, eax
mov eax, dword [rsp + 0x40]
sub r14d, eax
xor eax, eax
movsxd rcx, r14d
rep stosb byte [rdi], al
jmp 0x14020969b
mov rbp, qword [r12 + 0x48]
movzx r10d, word [r12 + 0x10]
mov eax, r14d
xor edx, edx
mov rsi, qword [rsp + 0x38]
mov edi, dword [rbp + 0x38]
sub eax, r10d
lea r9d, [rdi - 4]
div r9d
add edx, r10d
cmp r11d, edx
cmovl edx, r10d
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, r14d
mov r9d, r14d
mov eax, dword [rsp + 0x40]
cmovle r9d, edx
cmp r9d, eax
jg 0x1402094f5
mov rsi, qword [rsp + 0x50]
movsxd rcx, r9d
mov rdi, r8
rep movsb byte [rdi], byte [rsi]
jmp 0x14020951b
cmp dword [rsp + 0x40], 0
jle 0x140209511
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 0x14020951b
movsxd rcx, r9d
mov rdi, r8
xor eax, eax
rep stosb byte [rdi], al
sub r14d, r9d
test r14d, r14d
jle 0x14020968a
movsxd rax, r9d
sub dword [rsp + 0x40], r9d
add qword [rsp + 0x50], rax
sub edx, r9d
je 0x14020953e
add r8, rax
jmp 0x1402094d3
xor r10d, r10d
mov esi, dword [rsp + 0x8c]
mov qword [rsp + 0x90], r10
cmp byte [rbp + 0x21], 0
jne 0x140209593
xor r9d, r9d
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rcx, rbp
mov dword [rsp + 0x20], r9d
mov r9d, dword [rsp + 0x8c]
call fcn.1401baa50
cmp byte [rbp + 0x21], 0
mov dword [rsp + 0x88], eax
je 0x140209616
test eax, eax
jne 0x140209616
jmp 0x1402095d3
mov eax, dword [0x140268a60]
mov r11d, dword [rbp + 0x34]
mov dword [rsp + 0x68], eax
mov edi, dword [rsp + 0x8c]
mov rcx, rbp
lea r10d, [rdi + 1]
mov edx, r10d
mov dword [rsp + 0x8c], r10d
call fcn.1401f75d0
cmp r10d, eax
je 0x1402095a1
mov eax, dword [rsp + 0x68]
xor edx, edx
div r11d
cmp edi, eax
je 0x1402095a1
jmp 0x140209556
cmp esi, 1
mov edx, dword [rsp + 0x8c]
mov r9d, esi
mov rcx, rbp
lea rax, [rsp + 0x88]
mov r8d, 3
mov qword [rsp + 0x20], rax
sbb r8d, 0xffffffff
call fcn.1401f7620
cmp dword [rsp + 0x88], 0
je 0x140209616
mov rcx, qword [rsp + 0x90]
call fcn.1401f8a80
mov esi, dword [rsp + 0x88]
test esi, esi
je 0x140209637
mov rcx, qword [rsp + 0x48]
call fcn.1401f8a80
mov dword [rsp + 0x80], esi
jmp 0x1402097bc
mov eax, dword [rsp + 0x8c]
mov rdi, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
bswap eax
mov dword [rdi], eax
call fcn.1401f8a80
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 [rbp + 0x38]
lea edx, [rax - 4]
jmp 0x1402094d3
mov ebp, dword [rsp + 0x64]
mov rcx, qword [rsp + 0x48]
add ebp, 4
call fcn.1401f8a80
xor ecx, ecx
mov dword [rsp + 0x80], ecx
jmp 0x1402091b7
movzx eax, word [r12 + 0x10]
cmp eax, ebp
jle 0x1402096e0
jmp 0x1402092d7
movsxd rax, ebp
add rax, rdx
cmp qword [r12 + 0x58], rax
jae 0x1402096cf
mov ecx, 0x12f6b
jmp 0x1402092f5
mov rsi, qword [rsp + 0x38]
mov ecx, ebp
mov rdi, rdx
rep movsb byte [rdi], byte [rsi]
jmp 0x1402097c4
lea r9, [rsp + 0x80]
mov edx, esi
mov rcx, r12
call fcn.1401c5270
cmp dword [rsp + 0x80], 0
je 0x140209719
jmp 0x1402097bc
jns 0x140209719
cmp word [r12 + 0x18], 0
je 0x140209719
inc eax
and byte [rbx + 1], 0xfd
mov word [rbx + 0x56], ax
movzx esi, ax
xor eax, eax
xor edx, edx
mov r8, qword [rsp + 0x38]
mov r9d, ebp
mov qword [rsp + 0x20], rdx
mov rcx, r12
mov edx, esi
mov dword [rsp + 0x28], eax
call fcn.1401ea300
cmp byte [r12 + 0xc], 0
mov dword [rsp + 0x80], eax
je 0x1402097bc
and byte [rbx + 1], 0xfd
mov rcx, rbx
call fcn.1401bcc40
mov rdx, qword [rbx + 0x88]
mov dword [rsp + 0x80], eax
mov byte [rdx + 0xc], 0
mov byte [rbx], 1
test byte [rsp + 0x60], 2
je 0x1402097bc
test eax, eax
jne 0x1402097bc
mov rcx, rbx
call fcn.1401bfab0
cmp qword [rbx + 0x80], 0
je 0x1402097b1
mov rcx, qword [r13 + 8]
call fcn.1402256e0
mov qword [rbx + 0x18], rax
test rax, rax
jne 0x1402097a4
mov dword [rsp + 0x80], 7
jmp 0x1402097b1
mov rsi, qword [r13]
mov rcx, qword [r13 + 8]
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
mov byte [rbx], 3
mov rax, qword [r13 + 8]
mov qword [rbx + 0x48], rax
mov r14d, dword [rsp + 0x80]
mov eax, r14d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret