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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rsi, qword [rcx + 0x10]
xor r14d, r14d
mov edi, edx
mov rbx, rcx
test rsi, rsi
jne 0x1400850a3
call fcn.140050a70
mov qword [rbx + 0x10], rax
mov rsi, rax
test rax, rax
je 0x14008508d
xor r9d, r9d
mov dword [rsp + 0x20], r14d
xor r8d, r8d
mov edx, 0x99
mov rcx, rax
call fcn.140050c60
cmp qword [rbx + 0x1c0], r14
jne 0x1400850a3
mov rax, qword [rbx]
test byte [rax + 0x4c], 8
jne 0x1400850a3
mov byte [rbx + 0x23], 1
mov eax, dword [rbx + 0x50]
mov rcx, rsi
dec eax
mov dword [rsp + 0x34], eax
call fcn.140050da0
mov r12d, eax
mov rbp, qword [rsp + 0xc0]
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0xd8], r14d
jge 0x1400850e7
movzx r8d, byte [rbp + 0x2c]
mov r9d, eax
mov edx, 0x87
mov dword [rsp + 0x20], r14d
mov rcx, rsi
call fcn.140050c60
mov ebp, dword [rbp + 0x28]
mov r15d, dword [rsp + 0xd0]
mov r13, qword [rsp + 0xc8]
mov dword [rsp + 0x38], ebp
test ebp, ebp
jle 0x140085153
mov rbx, qword [rsp + 0xc0]
mov rdi, r13
nop dword [rax]
mov r8d, dword [rdi]
mov r9d, r12d
inc r8d
mov dword [rsp + 0x20], 0
add r8d, r15d
mov edx, 0x4c
mov rcx, rsi
call fcn.140050c60
mov ebp, dword [rbx + 0x28]
lea rdi, [rdi + 4]
inc r14d
mov dword [rsp + 0x38], ebp
cmp r14d, ebp
jl 0x140085110
mov rbx, qword [rsp + 0xa0]
mov edi, dword [rsp + 0xa8]
cmp dword [rsp + 0xe0], 0
jne 0x1400855c7
mov rdx, qword [rsp + 0xb8]
test rdx, rdx
jne 0x1400852f5
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x140085182
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x14008518e
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0x24]
mov r8d, dword [r13]
mov r9d, edi
inc r8d
xor r13d, r13d
add r8d, r15d
mov dword [rsp + 0x20], r13d
mov edx, 0x22
mov rcx, rsi
call fcn.140050c60
xor r9d, r9d
mov dword [rsp + 0x20], r13d
mov r8d, edi
mov edx, 0x26
mov rcx, rsi
call fcn.140050c60
mov r14, qword [rsp + 0xb0]
mov ebp, eax
mov rax, qword [rsp + 0xc0]
cmp r14, qword [rax]
jne 0x140085216
cmp dword [rsp + 0xd8], 1
jne 0x140085216
mov r9d, r12d
mov dword [rsp + 0x20], edi
mov r8d, r15d
mov edx, 0x4f
mov rcx, rsi
call fcn.140050c60
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x140085216
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x90
mov r8d, dword [rsp + 0xa8]
mov r9, r14
mov r14d, dword [rsp + 0x34]
mov rcx, rbx
mov edx, r14d
mov dword [rsp + 0x20], 0x36
call fcn.1400887e0
xor r9d, r9d
mov dword [rsp + 0x20], edi
mov r8d, r14d
mov edx, 0x46
mov rcx, rsi
call fcn.140050c60
mov r9d, r12d
mov dword [rsp + 0x20], r13d
xor r8d, r8d
mov edx, 0x10
mov rcx, rsi
call fcn.140050c60
mov edx, dword [rsi + 0x3c]
lea eax, [rdx - 2]
cmp edx, eax
jbe 0x14008527e
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
mov edx, dword [rsi + 0x3c]
cmp edx, ebp
jbe 0x1400852a4
mov rax, qword [rsi + 8]
lea rcx, [rbp*2]
add rcx, rbp
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
test edi, edi
je 0x1400855cf
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x1400855cf
mov ecx, r13d
lea rax, [rbx + 0x88]
nop
cmp dword [rax + 0xc], edi
je 0x1400852ec
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x1400852d0
mov dword [rbx + rdx*4 + 0x24], edi
inc byte [rbx + 0x1f]
jmp 0x1400855cf
mov byte [rax + 6], 1
jmp 0x1400855cf
mov ecx, dword [rbx + 0x44]
mov r12d, dword [rbx + 0x48]
mov dword [rsp + 0x3c], r12d
cmp ebp, ecx
jg 0x140085313
lea eax, [r12 + rbp]
sub ecx, ebp
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x44], ecx
jmp 0x140085324
mov eax, dword [rbx + 0x54]
lea r12d, [rax + 1]
add eax, ebp
mov dword [rbx + 0x54], eax
mov dword [rsp + 0x3c], r12d
movzx eax, byte [rbx + 0x1f]
lea r14, [rbx + 0x1f]
test al, al
jne 0x140085338
inc dword [rbx + 0x54]
mov eax, dword [rbx + 0x54]
jmp 0x140085344
dec al
movzx eax, al
mov byte [r14], al
mov eax, dword [rbx + rax*4 + 0x24]
mov r9d, dword [rdx + 0x58]
mov rcx, rsi
mov r8d, dword [rsp + 0x34]
mov edx, 0x36
mov dword [rsp + 0xe0], eax
mov dword [rsp + 0x20], edi
call fcn.140050c60
mov rdx, qword [rsp + 0xb8]
mov rcx, rbx
mov rdi, qword [rbx + 0x10]
call fcn.14007d530
mov r8, rax
mov edx, 0xffffffff
mov r9d, 0xfffffffa
mov rcx, rdi
call fcn.140051290
movsxd r13, ebp
test ebp, ebp
jle 0x1400853d4
mov r14d, r12d
xor edi, edi
mov r12, qword [rsp + 0xc8]
mov r8d, dword [r12 + rdi*4]
mov r9d, r14d
inc r8d
mov dword [rsp + 0x20], 0
add r8d, r15d
mov edx, 0x21
mov rcx, rsi
call fcn.140050c60
inc r14d
inc rdi
cmp rdi, r13
jl 0x1400853a3
lea r14, [rbx + 0x1f]
mov rax, qword [rsp + 0xc0]
mov r12, r14
mov rdx, qword [rsp + 0xb0]
cmp rdx, qword [rax]
jne 0x1400854f1
cmp dword [rsp + 0xd8], 1
jne 0x1400854f1
mov eax, dword [rsi + 0x3c]
inc eax
add eax, ebp
test ebp, ebp
jle 0x1400854cf
mov rbx, qword [rsp + 0xc8]
xor edi, edi
mov ebp, eax
nop dword [rax]
mov eax, dword [rbx + rdi*4]
lea r14d, [r15 + 1]
movsxd r12, dword [rsi + 0x3c]
inc eax
add eax, r15d
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0xb8]
mov rax, qword [rax + 8]
movsx ecx, word [rax + rdi*2]
mov rax, qword [rsi + 0x30]
add r14d, ecx
cmp cx, word [rdx + 0x40]
cmove r14d, r15d
cmp dword [rax + 0x60], r12d
jg 0x140085465
mov rcx, rsi
call fcn.140050bb0
test eax, eax
jne 0x140085495
mov rax, qword [rsi + 8]
lea rcx, [r12 + r12*2]
inc dword [rsi + 0x3c]
mov edx, dword [rsp + 0x40]
mov word [rax + rcx*8], 0x4e
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], r14d
mov qword [rax + rcx*8 + 0x10], 0
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x1400854ab
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x10
mov rdx, qword [rsp + 0xb0]
inc rdi
cmp rdi, r13
jl 0x140085420
mov rbx, qword [rsp + 0xa0]
mov ebp, dword [rsp + 0x38]
lea r12, [rbx + 0x1f]
mov r14d, dword [rsp + 0x30]
xor r8d, r8d
mov r9d, r14d
mov dword [rsp + 0x20], 0
mov edx, 0x10
mov rcx, rsi
call fcn.140050c60
jmp 0x1400854f6
mov r14d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0xb8]
mov rcx, rsi
call fcn.140088920
mov r13d, dword [rsp + 0x3c]
mov r9d, ebp
mov r15d, dword [rsp + 0xe0]
mov r8d, r13d
mov edx, 0x31
mov dword [rsp + 0x20], r15d
mov rcx, rsi
mov rdi, rax
call fcn.140050c60
mov r9d, ebp
mov r8, rdi
mov edx, eax
mov rcx, rsi
call fcn.140051290
mov r9d, r14d
mov dword [rsp + 0x20], r15d
mov r14d, dword [rsp + 0x34]
mov edx, 0x45
mov r8d, r14d
mov rcx, rsi
call fcn.140050c60
mov r9d, 0xfffffff2
xor r8d, r8d
mov edx, eax
mov rcx, rsi
call fcn.140051290
test r15d, r15d
je 0x1400855a6
cmp byte [r12], 8
jae 0x1400855a6
xor ecx, ecx
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], r15d
je 0x1400855a2
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x140085583
movzx eax, byte [rbx + 0x1f]
mov dword [rbx + rax*4 + 0x24], r15d
inc byte [rbx + 0x1f]
jmp 0x1400855a6
mov byte [rax + 6], 1
mov r8d, ebp
mov edx, r13d
mov rcx, rbx
call fcn.14006aba0
mov r12d, dword [rsp + 0x30]
cmp ebp, dword [rbx + 0x44]
jle 0x1400855cc
mov dword [rbx + 0x44], ebp
mov dword [rbx + 0x48], r13d
jmp 0x1400855cc
mov r14d, dword [rsp + 0x34]
xor r13d, r13d
mov r8, qword [rsp + 0xc0]
movzx edx, byte [r8 + 0x2c]
lea rcx, [r8 + 0x2c]
test dl, dl
jne 0x140085669
mov rax, qword [rbx]
test dword [rax + 0x2c], 0x1000000
jne 0x140085669
cmp qword [rbx + 0x1c0], 0
jne 0x140085669
cmp byte [rbx + 0x20], dl
jne 0x140085669
mov rcx, rbx
call fcn.14009a050
mov rcx, qword [rbx + 0x1c0]
mov edx, 0x18
test rcx, rcx
mov dword [rsp + 0x20], r13d
mov r9d, 2
mov r8d, 0x313
cmovne rbx, rcx
mov rdi, rax
mov rcx, rax
mov byte [rbx + 0x21], 1
call fcn.140050c60
mov r9d, 0xfffffffe
xor r8d, r8d
mov edx, eax
mov rcx, rdi
call fcn.140051290
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x1400856a6
movsxd rax, dword [rdi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 4
jmp 0x1400856a6
mov r9d, dword [rsp + 0xd8]
test r9d, r9d
jle 0x140085690
test dl, dl
jne 0x140085690
mov rax, qword [rbx + 0x1c0]
lea rcx, [r8 + 0x2c]
test rax, rax
cmovne rbx, rax
mov byte [rbx + 0x21], 1
movzx r8d, byte [rcx]
mov edx, 0x86
mov rcx, rsi
mov dword [rsp + 0x20], r13d
call fcn.140050c60
mov r9, qword [rsi + 0x30]
not r12d
test r12d, r12d
js 0x1400856c7
mov rcx, qword [r9 + 0x80]
test rcx, rcx
je 0x1400856c7
mov eax, dword [rsi + 0x3c]
movsxd rdx, r12d
mov dword [rcx + rdx*4], eax
mov eax, dword [rsi + 0x3c]
mov r8d, r14d
dec eax
mov dword [rsp + 0xc0], r13d
mov dword [r9 + 0x64], eax
mov edx, 0x3d
xor r9d, r9d
mov rcx, rsi
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.140050c60