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

Disassembly:
push rbp
push rdi
sub rsp, 0x28
mov qword [rsp + 0x40], rbx
mov rbx, qword [rcx + 8]
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x20], r13
xor r13d, r13d
mov r12d, edx
mov rbp, rcx
mov edi, r13d
call fcn.1400357d0
movzx eax, byte [rbp + 0x10]
cmp al, 2
je 0x140038ad9
cmp al, 1
jne 0x140038879
test r12d, r12d
je 0x140038af2
cmp byte [rbx + 0x20], dil
je 0x14003888e
test r12d, r12d
je 0x140038899
mov edi, 8
jmp 0x140038af2
test r12d, r12d
je 0x140038899
cmp byte [rbx + 0x27], 2
je 0x1400388a2
cmp byte [rbx + 0x89], dil
je 0x1400388ae
mov rax, qword [rbx + 0x80]
mov rcx, qword [rax]
jmp 0x1400388fa
cmp r12d, 1
jle 0x1400388ce
mov rax, qword [rbx + 0x78]
test rax, rax
je 0x1400388ce
nop dword [rax]
cmp qword [rax], rbp
jne 0x1400388f4
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1400388c0
mov rax, qword [rbp + 8]
cmp byte [rbp + 0x11], dil
je 0x14003892c
cmp qword [rax + 0x80], rbp
je 0x140038909
cmp byte [rax + 0x88], dil
je 0x140038909
mov edi, 0x106
jmp 0x140038af2
mov rax, qword [rax]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400388ce
mov edi, 0x106
jmp 0x140038af2
mov rax, qword [rax + 0x78]
test rax, rax
je 0x14003892c
cmp qword [rax], rbp
je 0x140038923
cmp dword [rax + 8], 1
jne 0x140038923
cmp byte [rax + 0xc], 1
jne 0x14003894c
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x140038912
cmp dword [rbx + 0x40], r13d
sete al
mov byte [rbx + 0x23], al
cmp qword [rbx + 0x18], r13
jne 0x140038956
mov rcx, rbx
call fcn.140038300
mov edi, eax
test eax, eax
je 0x140038936
jmp 0x1400389a1
mov edi, 0x106
jmp 0x140038af2
test edi, edi
jne 0x1400389a1
test r12d, r12d
je 0x1400389db
cmp byte [rbx + 0x20], r13b
je 0x14003896c
mov edi, 8
jmp 0x1400389a1
mov rax, qword [rbp]
mov rcx, qword [rbx]
mov r8d, r13d
cmp byte [rax + 0x29], 2
mov edx, r13d
sete r8b
cmp r12d, 1
setg dl
call fcn.1400312d0
mov edi, eax
test eax, eax
jne 0x1400389a1
mov rcx, rbx
call fcn.140038720
mov edi, eax
test eax, eax
je 0x1400389db
cmp byte [rbx + 0x27], r13b
jne 0x1400389db
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1400389db
mov rcx, qword [rax + 0x78]
test rcx, rcx
je 0x1400389d7
mov rsi, qword [rcx + 0x20]
call fcn.14002be20
mov r11, qword [rsi + 0xe0]
cmp dword [r11 + 0x18], r13d
jne 0x1400389d7
mov rcx, rsi
call fcn.14002e6b0
mov qword [rbx + 0x18], r13
cmp dil, 5
jne 0x140038a1c
cmp byte [rbx + 0x27], r13b
jne 0x140038a1c
mov rsi, qword [rbx + 8]
add rsi, 0x2b8
je 0x140038a1c
mov rax, qword [rsi]
test rax, rax
je 0x140038a1c
mov edx, dword [rsi + 0x10]
test edx, edx
js 0x140038a1c
mov rcx, qword [rsi + 8]
call rax
test eax, eax
je 0x140038a15
inc dword [rsi + 0x10]
jmp 0x140038936
mov dword [rsi + 0x10], 0xffffffff
test edi, edi
jne 0x140038af2
cmp byte [rbp + 0x10], r13b
jne 0x140038a47
inc dword [rbx + 0x3c]
cmp byte [rbp + 0x11], r13b
je 0x140038a47
mov byte [rbp + 0x3c], 1
mov rax, qword [rbx + 0x78]
mov qword [rbp + 0x40], rax
lea rax, [rbp + 0x30]
mov qword [rbx + 0x78], rax
test r12d, r12d
setne al
inc al
mov byte [rbp + 0x10], al
cmp al, byte [rbx + 0x27]
jbe 0x140038a5a
mov byte [rbx + 0x27], al
test r12d, r12d
je 0x140038af2
mov rsi, qword [rbx + 0x18]
mov qword [rbx + 0x80], rbp
cmp r12d, 1
setg al
mov byte [rbx + 0x88], al
mov rcx, qword [rsi + 0x70]
movzx eax, byte [rcx + 0x1d]
movzx edx, byte [rcx + 0x1c]
shl edx, 8
or edx, eax
movzx eax, byte [rcx + 0x1e]
shl edx, 8
or edx, eax
movzx eax, byte [rcx + 0x1f]
shl edx, 8
or edx, eax
cmp dword [rbx + 0x40], edx
je 0x140038ad9
mov rcx, qword [rsi + 0x78]
call fcn.1400315d0
mov edi, eax
test eax, eax
jne 0x140038af2
mov r8d, dword [rbx + 0x40]
mov rdx, qword [rsi + 0x70]
mov eax, r8d
mov byte [rdx + 0x1f], r8b
shr eax, 0x18
mov byte [rdx + 0x1c], al
mov eax, r8d
shr eax, 0x10
mov byte [rdx + 0x1d], al
mov eax, r8d
shr eax, 8
mov byte [rdx + 0x1e], al
test r12d, r12d
je 0x140038af2
mov rax, qword [rbp]
mov rcx, qword [rbx]
mov edx, dword [rax + 0x320]
call fcn.1400321b0
mov edi, eax
cmp byte [rbp + 0x11], 0
mov r13, qword [rsp + 0x20]
mov r12, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
je 0x140038b29
add dword [rbp + 0x14], 0xffffffff
jne 0x140038b29
mov rax, qword [rbp + 8]
mov rcx, qword [rax + 0x58]
test rcx, rcx
je 0x140038b25
call qword [0x140144100]
mov byte [rbp + 0x12], 0
mov eax, edi
add rsp, 0x28
pop rdi
pop rbp
ret