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

Disassembly:
mov rax, rsp
mov word [rax + 0x20], r9w
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
xor r12d, r12d
mov rbp, r8
mov r13, rdx
mov r10, rcx
mov rdi, r12
mov r14, r12
mov qword [rsp + 0x48], r12
cmp word [rsp + 0x110], r12w
je 0x140077985
mov rax, qword [rcx]
mov r10, qword [rax]
test byte [r10 + 0x5c], 0x40
je 0x14007797d
xor al, al
jmp 0x1400780f4
mov r10, qword [rsp + 0xf0]
movzx eax, word [rdx]
mov word [rsp + 0x54], ax
cmp ax, 0x3f
ja 0x140077976
mov r8d, 1
movzx r15d, ax
movzx ebx, r9w
mov ecx, r15d
mov rdx, r8
mov eax, 0x800
shl rdx, cl
mov r11b, r8b
mov dword [rsp + 0x68], r15d
sub rdx, r8
and bx, ax
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x34], r11d
mov rsi, r12
mov qword [rsp + 0x60], r12
mov word [rsp + 0x38], bx
mov qword [rsp + 0x78], rdx
mov dword [rsp + 0x50], 0x182
je 0x1400779ed
mov eax, 0x183
mov word [rsp + 0x50], ax
mov ecx, r12d
mov r8, r12
mov qword [rsp + 0x80], r12
mov dword [rsp + 0x3c], ecx
cmp r14, rdx
jae 0x1400780ae
movzx eax, word [rsp + 0x110]
cmp ecx, eax
jg 0x1400780ae
cmp ecx, r12d
jle 0x140077a26
or rsi, qword [rdi + 8]
mov qword [rsp + 0x60], rsi
cmp ecx, eax
jge 0x140077a49
mov rax, qword [rbp + 0x18]
mov rdi, qword [rax + r8*8]
xor r8d, r8d
mov qword [rsp + 0x90], rdi
cmp bx, r8w
jne 0x140078063
jmp 0x140077a5c
mov rdi, qword [rsp + 0x118]
xor r8d, r8d
mov qword [rsp + 0x90], rdi
bt dword [rdi + 0x28], 0xa
jb 0x14007809d
mov ecx, 0x80
movzx eax, r9w
and ax, cx
mov word [rsp + 0x56], ax
je 0x140077a7f
mov word [rdi + 0x1e], r8w
movzx ecx, byte [rdi + 0x10]
mov rax, qword [r10 + 8]
mov ebp, r8d
imul rcx, rcx, 0x70
cmp r15d, r8d
mov eax, dword [rcx + rax + 0x4c]
mov dword [rsp + 0x5c], eax
jle 0x140077bad
lea rsi, [r13 + 8]
mov r13d, eax
mov ecx, ebp
mov r12d, 1
shl r12, cl
test r14, r12
jne 0x140077b7e
mov rcx, qword [rsi]
call fcn.140042d9c
mov rbx, rax
cmp byte [rax], 0xa2
jne 0x140077b7e
cmp dword [rax + 0x28], r13d
jne 0x140077b7e
movzx eax, word [rsp + 0x50]
mov r9, qword [rsp + 0x60]
movsx r8d, word [rbx + 0x2c]
xor edx, edx
lea rcx, [r10 + 0x68]
not r9
mov qword [rsp + 0x28], rdx
mov edx, r13d
mov dword [rsp + 0x20], eax
call fcn.140074590
mov r8, rax
xor eax, eax
cmp r8, rax
je 0x140077b73
lea r10d, [rax + 1]
cmp word [r8 + 0x14], r10w
jne 0x140077b3e
movzx edx, word [rdi + 0x2c]
mov ecx, eax
cmp edx, eax
jle 0x140077b3a
mov r9, qword [rdi + 0x38]
movsxd rax, ecx
cmp r8, qword [r9 + rax*8]
je 0x140077b38
movzx eax, word [rdi + 0x2c]
add ecx, r10d
cmp ecx, eax
jl 0x140077b24
xor eax, eax
cmp ecx, edx
jge 0x140077b73
test byte [r8 + 0x14], 0x82
je 0x140077b6b
cmp word [rbx + 0x2c], ax
jl 0x140077b6b
mov rcx, qword [rsp + 0xf0]
mov r8, qword [r8]
mov rdx, qword [rsi]
mov rcx, qword [rcx]
call fcn.140042f10
xor r8d, r8d
cmp eax, r8d
je 0x140077b76
jmp 0x140077b6e
xor r8d, r8d
or r14, r12
jmp 0x140077b76
xor r8d, r8d
mov r10, qword [rsp + 0xf0]
mov ecx, 1
add rsi, 0x28
add ebp, ecx
cmp ebp, r15d
jl 0x140077aa6
mov r11d, dword [rsp + 0x34]
mov r13, qword [rsp + 0xf8]
movzx r9d, word [rsp + 0x108]
mov qword [rsp + 0x48], r14
bt dword [rdi + 0x28], 0xc
jb 0x140077f90
bt dword [rdi + 0x28], 8
jae 0x140077bd2
mov esi, 1
mov r12, r8
mov word [rsp + 0x40], r8w
movzx eax, si
jmp 0x140077c21
mov r12, qword [rdi + 0x20]
cmp r12, r8
je 0x140077976
test byte [r12 + 0x64], 4
jne 0x140077976
movzx eax, word [r12 + 0x5e]
mov word [rsp + 0x40], ax
mov ax, word [r12 + 0x60]
cmp byte [r12 + 0x62], r8b
je 0x140077c14
bt dword [rdi + 0x28], 0xf
jb 0x140077c14
mov esi, 1
mov r11b, sil
jmp 0x140077c1c
mov r11b, r8b
mov esi, 1
mov dword [rsp + 0x34], r11d
movzx eax, ax
mov cl, r8b
mov byte [rsp + 0x32], r8b
cmp eax, r8d
mov byte [rsp + 0x31], r8b
mov ebx, r8d
mov dword [rsp + 0x58], ecx
mov dword [rsp + 0x88], eax
jle 0x140077f90
movzx r10d, word [rdi + 0x18]
mov byte [rsp + 0x30], sil
cmp ebx, r10d
jge 0x140077cbd
movzx eax, word [rdi + 0x2e]
cmp ebx, eax
jl 0x140077cbd
mov r8, qword [rdi + 0x38]
movsxd rax, ebx
mov rcx, qword [r8 + rax*8]
mov eax, dword [rsp + 0x50]
test word [rcx + 0x14], ax
je 0x140077c93
mov eax, 0x180
xor r8d, r8d
test word [rcx + 0x14], ax
je 0x140077f50
mov r11b, r8b
mov dword [rsp + 0x34], r11d
jmp 0x140077f50
test byte [rcx + 0x14], sil
je 0x140077cba
mov r9, qword [rcx]
lea edx, [rbx + 1]
cmp edx, r10d
jge 0x140077cba
movsxd rax, edx
mov rcx, qword [r8 + rax*8]
cmp qword [rcx], r9
je 0x140077ceb
movzx eax, word [rdi + 0x18]
add edx, esi
cmp edx, eax
jl 0x140077ca4
xor r8d, r8d
cmp r12, r8
je 0x140077cf5
mov rax, qword [r12 + 8]
movsxd rcx, ebx
movsx r13d, word [rax + rcx*2]
mov rax, qword [r12 + 0x38]
mov r15b, byte [rcx + rax]
mov rax, qword [r12 + 0x18]
movsx ecx, word [rax + 0x44]
and r15b, sil
cmp r13d, ecx
jne 0x140077cfc
jmp 0x140077cf8
xor r8d, r8d
mov byte [rsp + 0x30], r8b
jmp 0x140077cbd
mov r15b, r8b
or r13d, 0xffffffff
cmp r11b, r8b
je 0x140077d2a
cmp r13d, r8d
jl 0x140077d2a
cmp ebx, r10d
jl 0x140077d2a
mov rax, qword [r12 + 0x18]
mov rcx, qword [rax + 8]
movsxd rax, r13d
shl rax, 5
mov al, byte [rax + rcx + 0x18]
neg al
sbb cl, cl
and cl, r11b
mov byte [rsp + 0x34], cl
mov al, byte [rsp + 0x30]
mov esi, r8d
cmp al, r8b
je 0x140077e54
mov ecx, 1
cmp esi, dword [rsp + 0x68]
jge 0x140077e54
mov eax, esi
bt r14, rax
jb 0x140077e77
mov rbp, qword [rsp + 0xf8]
movsxd rax, esi
lea r14, [rax + rax*4]
mov rcx, qword [rbp + r14*8 + 8]
call fcn.140042d9c
mov rdx, rax
mov al, byte [rsp + 0x108]
and al, 0xc0
neg al
sbb al, al
and al, byte [rsp + 0x30]
cmp r13d, 0xffffffff
mov byte [rsp + 0x30], al
jl 0x140077dab
cmp byte [rdx], 0xa2
jne 0x140077e3f
mov ecx, dword [rsp + 0x5c]
cmp dword [rdx + 0x28], ecx
jne 0x140077e3f
movsx eax, word [rdx + 0x2c]
cmp eax, r13d
jmp 0x140077de1
movsxd rax, ebx
lea rcx, [rax + rax*4]
mov rax, qword [r12 + 0x50]
mov rcx, qword [rax + rcx*8 + 8]
call fcn.140042d9c
mov rcx, rdx
mov r8, rax
call fcn.140042d9c
mov r9d, dword [rsp + 0x5c]
mov rdx, rax
xor ecx, ecx
call fcn.140048798
xor r8d, r8d
cmp eax, r8d
jne 0x140077e3b
cmp r13d, 0xffffffff
je 0x140077e85
mov rax, qword [rsp + 0xf0]
mov rbp, qword [rax]
mov rax, qword [rsp + 0xf8]
mov rdx, qword [rax + r14*8 + 8]
mov rcx, rbp
call fcn.140042dc8
xor edx, edx
mov rcx, rax
cmp rax, rdx
jne 0x140077e1f
mov rax, qword [rbp]
mov rcx, qword [rax + 0x10]
mov rdx, qword [r12 + 0x40]
mov rcx, qword [rcx]
movsxd rax, ebx
mov rdx, qword [rdx + rax*8]
call fcn.140018fa0
xor r8d, r8d
cmp eax, r8d
je 0x140077e7d
mov al, byte [rsp + 0x30]
mov r14, qword [rsp + 0x48]
mov ecx, 1
add esi, ecx
cmp al, r8b
jne 0x140077d3f
mov r9w, word [rsp + 0x108]
cmp ebx, r8d
je 0x140077e6f
movzx eax, word [rsp + 0x40]
cmp ebx, eax
jge 0x140077f60
mov r11b, r8b
jmp 0x140077f65
mov al, byte [rsp + 0x30]
jmp 0x140077e49
mov rbp, qword [rsp + 0xf8]
mov r11d, 1
cmp word [rsp + 0x56], r8w
je 0x140077e9b
lea eax, [r11 + rbx]
mov word [rdi + 0x1e], ax
mov r9w, word [rsp + 0x108]
test r9b, 0x40
jne 0x140077ef7
movsxd rax, esi
lea rcx, [rax + rax*4]
cmp byte [rsp + 0x32], r8b
je 0x140077ecb
mov al, byte [rbp + rcx*8 + 0x20]
xor r15b, byte [rsp + 0x31]
and al, r11b
cmp r15b, al
jne 0x140077e5d
jmp 0x140077ef7
mov bpl, byte [rbp + rcx*8 + 0x20]
and bpl, r11b
xor bpl, r15b
mov byte [rsp + 0x31], bpl
je 0x140077ef2
mov ecx, dword [rsp + 0x3c]
mov rax, r11
shl rax, cl
mov rcx, qword [rsp + 0x120]
or qword [rcx], rax
mov byte [rsp + 0x32], r11b
movsxd rax, esi
lea rcx, [rax + rax*4]
mov rax, qword [rsp + 0xf8]
test byte [rax + rcx*8 + 0x20], 2
je 0x140077f1e
movzx eax, word [rdi + 0x18]
cmp ebx, eax
jne 0x140077e5d
bts dword [rdi + 0x28], 0x13
mov edx, dword [rsp + 0x58]
mov r14, qword [rsp + 0x48]
cmp r13d, 0xffffffff
mov ecx, esi
mov rax, r11
movzx edx, dl
cmove edx, r11d
mov r11d, dword [rsp + 0x34]
shl rax, cl
or r14, rax
mov dword [rsp + 0x58], edx
mov esi, 1
mov qword [rsp + 0x48], r14
add ebx, esi
cmp ebx, dword [rsp + 0x88]
jge 0x140077f6a
jmp 0x140077c48
mov r11d, dword [rsp + 0x34]
mov esi, 1
mov ecx, dword [rsp + 0x58]
mov r14, qword [rsp + 0x48]
mov r15d, dword [rsp + 0x68]
mov r13, qword [rsp + 0xf8]
cmp cl, r8b
movzx r11d, r11b
cmovne r11d, esi
mov dword [rsp + 0x34], r11d
cmp r11b, r8b
je 0x140078048
mov rsi, qword [rsp + 0x70]
mov ebx, r8d
or rsi, qword [rdi + 8]
cmp r15d, r8d
mov qword [rsp + 0x70], rsi
jle 0x140078048
mov rdi, qword [rsp + 0xf0]
add r13, 8
mov eax, 1
mov ecx, ebx
mov rsi, rax
shl rsi, cl
test r14, rsi
jne 0x140078022
mov r12, qword [r13]
cmp r12, r8
je 0x140077ff5
lea rcx, [rdi + 0x290]
mov rdx, r12
call fcn.140074000
xor r8d, r8d
mov rbp, rax
lea eax, [r8 + 1]
jmp 0x140077ff8
mov rbp, r8
cmp rbp, r8
jne 0x140078012
xor r8d, r8d
mov edx, eax
mov rcx, r12
call fcn.140044b14
xor r8d, r8d
cmp eax, r8d
je 0x140078022
mov rax, qword [rsp + 0x70]
not rax
test rbp, rax
jne 0x140078022
or r14, rsi
inc ebx
add r13, 0x28
cmp ebx, r15d
jl 0x140077fbf
mov rdi, qword [rsp + 0x90]
mov r11d, dword [rsp + 0x34]
mov r9w, word [rsp + 0x108]
mov qword [rsp + 0x48], r14
mov rdx, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x3c]
mov bx, word [rsp + 0x38]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x100]
mov r12d, 1
add qword [rsp + 0x80], r12
add ecx, r12d
mov dword [rsp + 0x3c], ecx
cmp r11b, r8b
je 0x1400780b7
mov r13, qword [rsp + 0xf8]
mov r10, qword [rsp + 0xf0]
mov r8, qword [rsp + 0x80]
xor r12d, r12d
jmp 0x1400779ff
mov r12d, 1
cmp byte [rdi + 0x1d], r8b
je 0x1400780b7
mov r14, rdx
jmp 0x1400780b7
mov r12d, 1
xor r8d, r8d
cmp r14, rdx
jne 0x1400780c2
mov al, byte [rsp + 0x54]
jmp 0x1400780f4
cmp r11b, r8b
jne 0x1400780f2
lea ecx, [r15 - 1]
jmp 0x1400780e4
mov rdx, r12
shl rdx, cl
sub rdx, r12
mov rax, rdx
and rax, r14
cmp rax, rdx
je 0x1400780ee
sub ecx, r12d
cmp ecx, r8d
jg 0x1400780cd
jmp 0x140077976
mov al, cl
jmp 0x1400780f4
mov al, 0xff
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret