Function at 0x140077c2c
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 0x140077c91
mov rax, qword [rcx]
mov r10, qword [rax]
test byte [r10 + 0x5c], 0x40
je 0x140077c89
xor al, al
jmp 0x140078400
mov r10, qword [rsp + 0xf0]
movzx eax, word [rdx]
mov word [rsp + 0x54], ax
cmp ax, 0x3f
ja 0x140077c82
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 0x140077cf9
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 0x1400783ba
movzx eax, word [rsp + 0x110]
cmp ecx, eax
jg 0x1400783ba
cmp ecx, r12d
jle 0x140077d32
or rsi, qword [rdi + 8]
mov qword [rsp + 0x60], rsi
cmp ecx, eax
jge 0x140077d55
mov rax, qword [rbp + 0x18]
mov rdi, qword [rax + r8*8]
xor r8d, r8d
mov qword [rsp + 0x90], rdi
cmp bx, r8w
jne 0x14007836f
jmp 0x140077d68
mov rdi, qword [rsp + 0x118]
xor r8d, r8d
mov qword [rsp + 0x90], rdi
bt dword [rdi + 0x28], 0xa
jb 0x1400783a9
mov ecx, 0x80
movzx eax, r9w
and ax, cx
mov word [rsp + 0x56], ax
je 0x140077d8b
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 0x140077eb9
lea rsi, [r13 + 8]
mov r13d, eax
mov ecx, ebp
mov r12d, 1
shl r12, cl
test r14, r12
jne 0x140077e8a
mov rcx, qword [rsi]
call fcn.1400430a8
mov rbx, rax
cmp byte [rax], 0xa2
jne 0x140077e8a
cmp dword [rax + 0x28], r13d
jne 0x140077e8a
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.14007489c
mov r8, rax
xor eax, eax
cmp r8, rax
je 0x140077e7f
lea r10d, [rax + 1]
cmp word [r8 + 0x14], r10w
jne 0x140077e4a
movzx edx, word [rdi + 0x2c]
mov ecx, eax
cmp edx, eax
jle 0x140077e46
mov r9, qword [rdi + 0x38]
movsxd rax, ecx
cmp r8, qword [r9 + rax*8]
je 0x140077e44
movzx eax, word [rdi + 0x2c]
add ecx, r10d
cmp ecx, eax
jl 0x140077e30
xor eax, eax
cmp ecx, edx
jge 0x140077e7f
test byte [r8 + 0x14], 0x82
je 0x140077e77
cmp word [rbx + 0x2c], ax
jl 0x140077e77
mov rcx, qword [rsp + 0xf0]
mov r8, qword [r8]
mov rdx, qword [rsi]
mov rcx, qword [rcx]
call fcn.14004321c
xor r8d, r8d
cmp eax, r8d
je 0x140077e82
jmp 0x140077e7a
xor r8d, r8d
or r14, r12
jmp 0x140077e82
xor r8d, r8d
mov r10, qword [rsp + 0xf0]
mov ecx, 1
add rsi, 0x28
add ebp, ecx
cmp ebp, r15d
jl 0x140077db2
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 0x14007829c
bt dword [rdi + 0x28], 8
jae 0x140077ede
mov esi, 1
mov r12, r8
mov word [rsp + 0x40], r8w
movzx eax, si
jmp 0x140077f2d
mov r12, qword [rdi + 0x20]
cmp r12, r8
je 0x140077c82
test byte [r12 + 0x64], 4
jne 0x140077c82
movzx eax, word [r12 + 0x5e]
mov word [rsp + 0x40], ax
mov ax, word [r12 + 0x60]
cmp byte [r12 + 0x62], r8b
je 0x140077f20
bt dword [rdi + 0x28], 0xf
jb 0x140077f20
mov esi, 1
mov r11b, sil
jmp 0x140077f28
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 0x14007829c
movzx r10d, word [rdi + 0x18]
mov byte [rsp + 0x30], sil
cmp ebx, r10d
jge 0x140077fc9
movzx eax, word [rdi + 0x2e]
cmp ebx, eax
jl 0x140077fc9
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 0x140077f9f
mov eax, 0x180
xor r8d, r8d
test word [rcx + 0x14], ax
je 0x14007825c
mov r11b, r8b
mov dword [rsp + 0x34], r11d
jmp 0x14007825c
test byte [rcx + 0x14], sil
je 0x140077fc6
mov r9, qword [rcx]
lea edx, [rbx + 1]
cmp edx, r10d
jge 0x140077fc6
movsxd rax, edx
mov rcx, qword [r8 + rax*8]
cmp qword [rcx], r9
je 0x140077ff7
movzx eax, word [rdi + 0x18]
add edx, esi
cmp edx, eax
jl 0x140077fb0
xor r8d, r8d
cmp r12, r8
je 0x140078001
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 0x140078008
jmp 0x140078004
xor r8d, r8d
mov byte [rsp + 0x30], r8b
jmp 0x140077fc9
mov r15b, r8b
or r13d, 0xffffffff
cmp r11b, r8b
je 0x140078036
cmp r13d, r8d
jl 0x140078036
cmp ebx, r10d
jl 0x140078036
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 0x140078160
mov ecx, 1
cmp esi, dword [rsp + 0x68]
jge 0x140078160
mov eax, esi
bt r14, rax
jb 0x140078183
mov rbp, qword [rsp + 0xf8]
movsxd rax, esi
lea r14, [rax + rax*4]
mov rcx, qword [rbp + r14*8 + 8]
call fcn.1400430a8
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 0x1400780b7
cmp byte [rdx], 0xa2
jne 0x14007814b
mov ecx, dword [rsp + 0x5c]
cmp dword [rdx + 0x28], ecx
jne 0x14007814b
movsx eax, word [rdx + 0x2c]
cmp eax, r13d
jmp 0x1400780ed
movsxd rax, ebx
lea rcx, [rax + rax*4]
mov rax, qword [r12 + 0x50]
mov rcx, qword [rax + rcx*8 + 8]
call fcn.1400430a8
mov rcx, rdx
mov r8, rax
call fcn.1400430a8
mov r9d, dword [rsp + 0x5c]
mov rdx, rax
xor ecx, ecx
call fcn.140048aa4
xor r8d, r8d
cmp eax, r8d
jne 0x140078147
cmp r13d, 0xffffffff
je 0x140078191
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.1400430d4
xor edx, edx
mov rcx, rax
cmp rax, rdx
jne 0x14007812b
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.1400192b0
xor r8d, r8d
cmp eax, r8d
je 0x140078189
mov al, byte [rsp + 0x30]
mov r14, qword [rsp + 0x48]
mov ecx, 1
add esi, ecx
cmp al, r8b
jne 0x14007804b
mov r9w, word [rsp + 0x108]
cmp ebx, r8d
je 0x14007817b
movzx eax, word [rsp + 0x40]
cmp ebx, eax
jge 0x14007826c
mov r11b, r8b
jmp 0x140078271
mov al, byte [rsp + 0x30]
jmp 0x140078155
mov rbp, qword [rsp + 0xf8]
mov r11d, 1
cmp word [rsp + 0x56], r8w
je 0x1400781a7
lea eax, [r11 + rbx]
mov word [rdi + 0x1e], ax
mov r9w, word [rsp + 0x108]
test r9b, 0x40
jne 0x140078203
movsxd rax, esi
lea rcx, [rax + rax*4]
cmp byte [rsp + 0x32], r8b
je 0x1400781d7
mov al, byte [rbp + rcx*8 + 0x20]
xor r15b, byte [rsp + 0x31]
and al, r11b
cmp r15b, al
jne 0x140078169
jmp 0x140078203
mov bpl, byte [rbp + rcx*8 + 0x20]
and bpl, r11b
xor bpl, r15b
mov byte [rsp + 0x31], bpl
je 0x1400781fe
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 0x14007822a
movzx eax, word [rdi + 0x18]
cmp ebx, eax
jne 0x140078169
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 0x140078276
jmp 0x140077f54
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 0x140078354
mov rsi, qword [rsp + 0x70]
mov ebx, r8d
or rsi, qword [rdi + 8]
cmp r15d, r8d
mov qword [rsp + 0x70], rsi
jle 0x140078354
mov rdi, qword [rsp + 0xf0]
add r13, 8
mov eax, 1
mov ecx, ebx
mov rsi, rax
shl rsi, cl
test r14, rsi
jne 0x14007832e
mov r12, qword [r13]
cmp r12, r8
je 0x140078301
lea rcx, [rdi + 0x290]
mov rdx, r12
call fcn.14007430c
xor r8d, r8d
mov rbp, rax
lea eax, [r8 + 1]
jmp 0x140078304
mov rbp, r8
cmp rbp, r8
jne 0x14007831e
xor r8d, r8d
mov edx, eax
mov rcx, r12
call fcn.140044e20
xor r8d, r8d
cmp eax, r8d
je 0x14007832e
mov rax, qword [rsp + 0x70]
not rax
test rbp, rax
jne 0x14007832e
or r14, rsi
inc ebx
add r13, 0x28
cmp ebx, r15d
jl 0x1400782cb
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 0x1400783c3
mov r13, qword [rsp + 0xf8]
mov r10, qword [rsp + 0xf0]
mov r8, qword [rsp + 0x80]
xor r12d, r12d
jmp 0x140077d0b
mov r12d, 1
cmp byte [rdi + 0x1d], r8b
je 0x1400783c3
mov r14, rdx
jmp 0x1400783c3
mov r12d, 1
xor r8d, r8d
cmp r14, rdx
jne 0x1400783ce
mov al, byte [rsp + 0x54]
jmp 0x140078400
cmp r11b, r8b
jne 0x1400783fe
lea ecx, [r15 - 1]
jmp 0x1400783f0
mov rdx, r12
shl rdx, cl
sub rdx, r12
mov rax, rdx
and rax, r14
cmp rax, rdx
je 0x1400783fa
sub ecx, r12d
cmp ecx, r8d
jg 0x1400783d9
jmp 0x140077c82
mov al, cl
jmp 0x140078400
mov al, 0xff
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret