Function at 0x140081f20
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 rdi, rcx
mov rax, qword [rcx + 0x20]
mov eax, dword [rax + 0x34]
add eax, eax
mov r15d, 0xaaaaaaab
imul r15, rax
shr r15, 0x21
mov rbx, qword [rcx + 0x88]
xor esi, esi
mov qword [rsp + 0x58], r15
cmp dword [rbx + 0x14], 0
jns 0x140081f71
mov rcx, rbx
call fcn.140080bdd
test eax, eax
jne 0x1400823eb
cmp byte [rbx + 0xc], 0
je 0x140082089
mov bpl, byte [rdi + 0x54]
test bpl, bpl
jne 0x1400820a3
mov qword [rsp + 0x70], 0
mov dword [rsp + 0x40], 0
mov r13, qword [rbx + 0x48]
mov rcx, qword [rbx + 0x70]
call fcn.140023acb
test eax, eax
jne 0x1400823f0
mov r9d, dword [rbx + 4]
mov byte [rsp + 0x20], 0
mov rcx, r13
lea rdx, [rsp + 0x70]
lea r8, [rsp + 0x40]
call fcn.14002da0e
mov dword [rsp + 0x50], eax
mov r14, qword [rsp + 0x70]
mov rcx, rbx
mov rdx, r14
lea r12, [rsp + 0x50]
mov r8, r12
call fcn.14008243d
cmp byte [r13 + 0x21], 0
je 0x140082004
mov r9d, dword [rbx + 4]
mov edx, dword [rsp + 0x40]
mov qword [rsp + 0x20], r12
mov rcx, r13
mov r8b, 5
call fcn.14002e7e1
mov r12d, dword [rsp + 0x50]
test r12d, r12d
jne 0x140082400
lea rcx, [r14 + 0x1c]
lea rdx, [rbx + 0x1c]
movzx r8d, byte [rbx + 0xc]
add r8, r8
call fcn.140201ae0
lea rcx, [r14 + 0x28]
lea rdx, [rbx + 0x28]
movzx r8d, byte [rbx + 0xc]
shl r8, 3
call fcn.140201ae0
mov al, byte [rbx + 0xc]
mov byte [r14 + 0xc], al
mov rax, qword [r14 + 0x50]
movzx edx, byte [rax]
and edx, 0xfffffff7
mov rcx, rbx
call fcn.14002b62b
mov eax, dword [rsp + 0x40]
mov rcx, qword [rbx + 0x50]
movzx edx, byte [rbx + 9]
bswap eax
mov dword [rdx + rcx + 8], eax
mov qword [rdi + 0x98], r14
mov byte [rdi + 0x54], 1
mov dword [rdi + 0x56], 0
mov qword [rdi + 0x90], rbx
xor r12d, r12d
jmp 0x140082243
xor r12d, r12d
cmp dword [rbx + 0x14], r15d
jle 0x140082419
mov bpl, byte [rdi + 0x54]
test bpl, bpl
je 0x140082419
movsx rax, bpl
mov r14, qword [rdi + rax*8 + 0x88]
movzx r13d, word [rdi + rax*2 + 0x56]
mov rcx, qword [r14 + 0x70]
call fcn.140023acb
test eax, eax
je 0x1400820ca
mov r12d, eax
jmp 0x140082222
cmp dword [r14 + 0x14], 0
js 0x14008225b
cmp byte [rbx + 3], 0
je 0x1400821d7
cmp byte [rbx + 0xc], 1
jne 0x1400821d7
movzx eax, word [rbx + 0x1c]
cmp ax, word [rbx + 0x18]
jne 0x1400821d7
cmp dword [r14 + 4], 1
je 0x1400821d7
cmp word [r14 + 0x18], r13w
jne 0x1400821d7
test ax, ax
je 0x140082270
mov rbp, qword [rbx + 0x48]
mov byte [rsp + 0x20], 0
mov rcx, rbp
lea rdx, [rsp + 0x50]
lea r8, [rsp + 0x4c]
xor r9d, r9d
call fcn.14002da0e
mov r12d, eax
test eax, eax
jne 0x140082222
mov rdx, qword [rbx + 0x28]
mov qword [rsp + 0x40], rdx
mov rcx, rbx
call qword [rbx + pe_nt_image_headers64]
mov word [rsp + 0x3a], ax
mov r13, qword [rsp + 0x50]
mov rcx, r13
mov edx, 0xd
call fcn.14002b62b
mov dword [rsp + 0x70], 1
mov qword [rsp + 0x78], rbx
lea rax, [rsp + 0x40]
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x3a]
mov qword [rsp + 0x88], rax
mov rax, qword [rbx + 0x58]
mov qword [rsp + 0x90], rax
mov dword [rsp + 0xc0], 2
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 1
mov r9, r13
call fcn.1400824fa
mov dword [rsp + 0x3c], eax
test eax, eax
je 0x1400822a2
mov r12d, eax
test r13, r13
je 0x140082222
mov rcx, qword [r13 + 0x70]
call fcn.140023b0c
jmp 0x140082222
mov rax, qword [rdi + 0x20]
mov ecx, dword [rax + 0x30]
call fcn.140023435
mov r15, rsi
mov rsi, rax
movzx eax, byte [rdi + 3]
and eax, 1
xor r9d, r9d
cmp bpl, 1
sete r9b
mov dword [rsp + 0x20], eax
mov rcx, r14
mov edx, r13d
mov r8, rsi
call fcn.140082717
mov r12d, eax
test r15, r15
je 0x14008221d
mov rcx, r15
call fcn.140020f05
mov r15, qword [rsp + 0x58]
mov byte [rbx + 0xc], 0
mov rcx, qword [rbx + 0x70]
call fcn.140023b0c
mov al, byte [rdi + 0x54]
dec al
mov byte [rdi + 0x54], al
movsx rax, al
mov r14, qword [rdi + rax*8 + 0x90]
mov qword [rdi + 0x88], r14
mov rbx, r14
test r12d, r12d
je 0x140081f5b
jmp 0x140082419
mov rcx, r14
call fcn.140080bdd
test eax, eax
jne 0x1400820c2
jmp 0x1400820d5
lea rax, [0x1402a8134]
mov qword [rsp + 0x20], rax
mov r12d, 0xb
mov ecx, 0xb
lea rdx, [0x1402a9020]
lea r8, [0x1402a9240]
mov r9d, 0x113e9
call fcn.14001f1b1
jmp 0x140082222
mov eax, dword [rbp + 0x34]
movzx ecx, word [r13 + 0x12]
movzx edx, word [rsp + 0x3a]
add edx, ecx
neg edx
add eax, edx
add eax, 0xfffffffe
mov dword [r13 + 0x14], eax
cmp byte [rbp + 0x21], 0
je 0x140082300
mov r9d, dword [r14 + 4]
mov edx, dword [rsp + 0x4c]
lea rax, [rsp + 0x3c]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov r8b, 5
call fcn.14002e7e1
movzx eax, word [rsp + 0x3a]
cmp ax, word [r13 + 0x10]
jbe 0x140082300
mov r8, qword [rsp + 0x40]
mov rcx, r13
mov rdx, r13
lea r9, [rsp + 0x3c]
call fcn.14002ed51
movzx eax, word [rbx + 0x1a]
mov r8, qword [rbx + 0x50]
mov rcx, qword [rbx + 0x60]
movzx edx, word [rbx + 0x18]
movzx r9d, byte [rcx + rdx*2 - 2]
shl r9d, 8
movzx r10d, byte [rcx + rdx*2 - 1]
or r10d, r9d
and r10d, eax
lea rcx, [r8 + r10]
lea rdx, [r8 + r10]
inc rdx
lea r9, [r8 + r10]
add r9, 2
xor r10d, r10d
mov r8, r10
mov rax, r9
lea r9, [rdx + r10]
mov qword [rsp + 0x40], r9
cmp byte [rcx + r10], 0
jns 0x140082360
lea r10, [r8 + 1]
lea r9, [rax + 1]
cmp r8, 8
jb 0x14008233c
add rcx, r8
add rcx, 0xa
lea r9, [rsp + 0x67]
mov qword [rsp + 0x40], rax
mov dl, byte [rax - 1]
mov byte [r9], dl
inc r9
test dl, dl
jns 0x14008238a
lea rdx, [rax + 1]
cmp rax, rcx
mov rax, rdx
jb 0x14008236c
cmp dword [rsp + 0x3c], 0
jne 0x1400823c0
mov eax, dword [rbx + 4]
lea r8, [rsp + 0x63]
sub r9d, r8d
movzx edx, word [r14 + 0x18]
lea rcx, [rsp + 0x3c]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], 0
mov rcx, r14
call fcn.140081c44
mov eax, dword [rsp + 0x4c]
mov rcx, qword [r14 + 0x50]
movzx edx, byte [r14 + 9]
bswap eax
mov dword [rdx + rcx + 8], eax
test r13, r13
je 0x1400823e1
mov rcx, qword [r13 + 0x70]
call fcn.140023b0c
mov r12d, dword [rsp + 0x3c]
jmp 0x140082222
xor r12d, r12d
jmp 0x140082419
mov r12d, eax
mov qword [rdi + 0x98], 0
jmp 0x140082419
mov qword [rdi + 0x98], 0
test r14, r14
je 0x140082419
mov rcx, qword [r14 + 0x70]
call fcn.140023b0c
test rsi, rsi
je 0x140082426
mov rcx, rsi
call fcn.140020f05
mov eax, r12d
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret