Function at 0x140083e50
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 0x140083ec3
call fcn.14004f940
mov qword [rbx + 0x10], rax
mov rsi, rax
test rax, rax
je 0x140083ead
xor r9d, r9d
mov dword [rsp + 0x20], r14d
xor r8d, r8d
mov edx, 0x99
mov rcx, rax
call fcn.14004fb30
cmp qword [rbx + 0x1c0], r14
jne 0x140083ec3
mov rax, qword [rbx]
test byte [rax + 0x4c], 8
jne 0x140083ec3
mov byte [rbx + 0x23], 1
mov eax, dword [rbx + 0x50]
mov rcx, rsi
dec eax
mov dword [rsp + 0x34], eax
call fcn.14004fc70
mov r12d, eax
mov rbp, qword [rsp + 0xc0]
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0xd8], r14d
jge 0x140083f07
movzx r8d, byte [rbp + 0x2c]
mov r9d, eax
mov edx, 0x87
mov dword [rsp + 0x20], r14d
mov rcx, rsi
call fcn.14004fb30
mov ebp, dword [rbp + 0x28]
mov r15d, dword [rsp + 0xd0]
mov r13, qword [rsp + 0xc8]
mov dword [rsp + 0x38], ebp
test ebp, ebp
jle 0x140083f73
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.14004fb30
mov ebp, dword [rbx + 0x28]
lea rdi, [rdi + 4]
inc r14d
mov dword [rsp + 0x38], ebp
cmp r14d, ebp
jl 0x140083f30
mov rbx, qword [rsp + 0xa0]
mov edi, dword [rsp + 0xa8]
cmp dword [rsp + 0xe0], 0
jne 0x1400843e6
mov rdx, qword [rsp + 0xb8]
test rdx, rdx
jne 0x140084115
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x140083fa2
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x140083fae
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0x24]
mov r8d, dword [r13]
mov r9d, edi
xor r13d, r13d
inc r8d
add r8d, r15d
mov dword [rsp + 0x20], r13d
mov rcx, rsi
lea edx, [r13 + 0x22]
call fcn.14004fb30
xor r9d, r9d
mov dword [rsp + 0x20], r13d
mov r8d, edi
lea edx, [r13 + 0x26]
mov rcx, rsi
call fcn.14004fb30
mov r14, qword [rsp + 0xb0]
mov ebp, eax
mov rax, qword [rsp + 0xc0]
cmp r14, qword [rax]
jne 0x140084033
cmp dword [rsp + 0xd8], 1
jne 0x140084033
mov r9d, r12d
mov dword [rsp + 0x20], edi
mov r8d, r15d
lea edx, [r13 + 0x4f]
mov rcx, rsi
call fcn.14004fb30
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x140084033
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.140087680
xor r9d, r9d
mov dword [rsp + 0x20], edi
mov r8d, r14d
mov rcx, rsi
lea edx, [r9 + 0x46]
call fcn.14004fb30
xor r8d, r8d
mov dword [rsp + 0x20], r13d
mov r9d, r12d
mov rcx, rsi
lea edx, [r8 + 0x10]
call fcn.14004fb30
mov edx, dword [rsi + 0x3c]
lea eax, [rdx - 2]
cmp edx, eax
jbe 0x140084099
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 0x1400840bf
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 0x1400843ee
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x1400843ee
mov ecx, r13d
lea rax, [rbx + 0x88]
nop word [rax + rax]
cmp dword [rax + 0xc], edi
je 0x14008410c
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x1400840f0
mov dword [rbx + rdx*4 + 0x24], edi
inc byte [rbx + 0x1f]
jmp 0x1400843ee
mov byte [rax + 6], 1
jmp 0x1400843ee
mov ecx, dword [rbx + 0x44]
mov r12d, dword [rbx + 0x48]
mov dword [rsp + 0x3c], r12d
cmp ebp, ecx
jg 0x140084133
lea eax, [r12 + rbp]
sub ecx, ebp
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x44], ecx
jmp 0x140084144
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 0x140084158
inc dword [rbx + 0x54]
mov eax, dword [rbx + 0x54]
jmp 0x140084164
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.14004fb30
mov rdx, qword [rsp + 0xb8]
mov rcx, rbx
mov rdi, qword [rbx + 0x10]
call fcn.14007c3e0
mov edx, 0xffffffff
mov r8, rax
mov rcx, rdi
lea r9d, [rdx - 5]
call fcn.140050160
movsxd r13, ebp
test ebp, ebp
jle 0x1400841f2
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.14004fb30
inc r14d
inc rdi
cmp rdi, r13
jl 0x1400841c1
lea r14, [rbx + 0x1f]
mov rax, qword [rsp + 0xc0]
mov r12, r14
mov rdx, qword [rsp + 0xb0]
cmp rdx, qword [rax]
jne 0x140084310
cmp dword [rsp + 0xd8], 1
jne 0x140084310
mov eax, dword [rsi + 0x3c]
inc eax
add eax, ebp
test ebp, ebp
jle 0x1400842ef
mov rbx, qword [rsp + 0xc8]
xor edi, edi
mov ebp, eax
nop word [rax + 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 0x140084285
mov rcx, rsi
call fcn.14004fa80
test eax, eax
jne 0x1400842b5
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 0x1400842cb
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 0x140084240
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 rcx, rsi
lea edx, [r8 + 0x10]
call fcn.14004fb30
jmp 0x140084315
mov r14d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0xb8]
mov rcx, rsi
call fcn.1400877c0
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.14004fb30
mov r9d, ebp
mov r8, rdi
mov edx, eax
mov rcx, rsi
call fcn.140050160
mov r9d, r14d
mov dword [rsp + 0x20], r15d
mov r14d, dword [rsp + 0x34]
mov edx, 0x45
mov r8d, r14d
mov rcx, rsi
call fcn.14004fb30
mov r9d, 0xfffffff2
xor r8d, r8d
mov edx, eax
mov rcx, rsi
call fcn.140050160
test r15d, r15d
je 0x1400843c5
cmp byte [r12], 8
jae 0x1400843c5
xor ecx, ecx
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], r15d
je 0x1400843c1
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x1400843a2
movzx eax, byte [rbx + 0x1f]
mov dword [rbx + rax*4 + 0x24], r15d
inc byte [rbx + 0x1f]
jmp 0x1400843c5
mov byte [rax + 6], 1
mov r8d, ebp
mov edx, r13d
mov rcx, rbx
call fcn.140069af0
mov r12d, dword [rsp + 0x30]
cmp ebp, dword [rbx + 0x44]
jle 0x1400843eb
mov dword [rbx + 0x44], ebp
mov dword [rbx + 0x48], r13d
jmp 0x1400843eb
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 0x140084486
mov rax, qword [rbx]
test dword [rax + 0x2c], 0x1000000
jne 0x140084486
cmp qword [rbx + 0x1c0], 0
jne 0x140084486
cmp byte [rbx + 0x20], dl
jne 0x140084486
mov rcx, rbx
call fcn.140098e90
mov rcx, qword [rbx + 0x1c0]
mov edx, 0x18
test rcx, rcx
mov dword [rsp + 0x20], r13d
mov r8d, 0x313
mov rdi, rax
cmovne rbx, rcx
mov rcx, rax
lea r9d, [rdx - 0x16]
mov byte [rbx + 0x21], 1
call fcn.14004fb30
mov r9d, 0xfffffffe
xor r8d, r8d
mov edx, eax
mov rcx, rdi
call fcn.140050160
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x1400844c3
movsxd rax, dword [rdi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 4
jmp 0x1400844c3
mov r9d, dword [rsp + 0xd8]
test r9d, r9d
jle 0x1400844ad
test dl, dl
jne 0x1400844ad
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.14004fb30
mov r9, qword [rsi + 0x30]
not r12d
test r12d, r12d
js 0x1400844e4
mov rcx, qword [r9 + 0x80]
test rcx, rcx
je 0x1400844e4
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 rcx, rsi
xor r9d, r9d
lea edx, [r9 + 0x3d]
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.14004fb30