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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
xor ebx, ebx
mov rax, qword [rcx]
mov qword [rsp + 0x38], rdx
mov edx, 1
mov rsi, rcx
mov rdi, r8
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0x78], rax
call fcn.140256870
test eax, eax
mov ebx, eax
jne 0x140295f87
mov rcx, qword [rsi + 8]
mov edx, 1
mov r8, qword [rsp + 0x38]
call fcn.140293510
test eax, eax
mov ebx, eax
jne 0x140295f87
mov rbp, qword [rsi]
cmp dword [rbp + 0x44], 0
je 0x140295dc1
xor r9d, r9d
mov edx, 8
mov rcx, rsi
lea r8, [rsp + 0xc0]
call fcn.1402562c0
test eax, eax
mov ebx, eax
jne 0x140295f87
mov rbx, qword [rsp + 0xc0]
mov edx, 1
mov r8, qword [rsp + 0x38]
mov rcx, rbx
call fcn.1402c13d0
mov rcx, rbx
call fcn.1402c6e70
xor r11d, r11d
cmp eax, 0x64
mov qword [rsp + 0x58], r11
jne 0x1402958e1
mov edx, 1
mov rcx, rbx
call fcn.1402c2240
mov qword [rsp + 0x58], rax
mov rcx, rbx
call fcn.1402c5f30
test eax, eax
mov ebx, eax
jne 0x140295f2d
cmp qword [rsp + 0x58], 0
je 0x140295f2d
mov rdi, qword [rsi + 8]
mov rcx, rdi
call fcn.140256e00
test rax, rax
mov qword [rsp + 0x48], rax
je 0x140295db4
mov eax, dword [rax + 0x1c]
mov dword [rsp + 0x40], eax
dec eax
cdqe
mov qword [rsp + 0x70], rax
xor eax, eax
cmp dword [rsp + 0x70], 0
js 0x140295daa
mov rbx, qword [rsp + 0x70]
shl rbx, 4
mov qword [rsp + 0xa0], rbx
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xa0]
mov ebx, dword [rbx + rcx + 0x24]
lea ecx, [rbx - 1]
mov dword [rsp + 0x40], ebx
movsxd rdx, ecx
mov dword [rsp + 0x68], ecx
imul rbx, rdx, 0x38
mov qword [rsp + 0x98], rbx
cmp dword [rsp + 0x68], 0
js 0x140295da0
mov rcx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x98]
add r12, qword [rcx + rbx + 0x28]
mov rcx, qword [rsp + 0x58]
cmp rcx, qword [r12 + 0x10]
jb 0x140295d8e
cmp qword [r12 + 0x18], rcx
jb 0x140295d8e
test eax, eax
jne 0x1402959bb
inc qword [r12 + 0x28]
mov edx, dword [r12 + 0x20]
inc dword [rdi + 0x34]
test edx, edx
jle 0x140295a66
mov rax, qword [rsp + 0x38]
movsxd rbx, edx
xor edx, edx
mov rcx, rdi
div rbx
mov eax, dword [r12]
mov rbx, rdx
mov dword [rsp + 0xa8], edx
lea edx, [rax + 0x10000]
shl rdx, 0x25
add rdx, rbx
call fcn.14024ac30
test rax, rax
mov r14, rax
je 0x140295a43
mov r9, qword [rsp + 0x38]
xor edx, edx
mov rcx, rax
mov r8d, dword [r12 + 0x20]
call fcn.14024fca0
test eax, eax
jne 0x140295a4d
mov edx, dword [r12]
mov rcx, rdi
mov r9d, dword [r14 + 8]
mov r8, qword [r14]
add edx, 0x10000
shl rdx, 0x25
add rdx, rbx
call fcn.14024ad50
mov rcx, r14
call fcn.1402c4500
mov eax, 1
jmp 0x140295d8e
mov rax, qword [r14]
cmp byte [rax], 4
setne al
movzx eax, al
lea eax, [rax*4 + 4]
mov dword [rsp + 0x40], eax
jmp 0x140295a7c
mov dword [rsp + 0xa8], 0xffffffff
xor r14d, r14d
mov dword [rsp + 0x40], 4
mov rcx, qword [rsp + 0x38]
mov eax, 0xffffffff
mov ebx, dword [r12 + 0x20]
cmp rax, rcx
mov eax, 8
cmovae eax, dword [rsp + 0x40]
mov dword [rsp + 0x40], eax
mov rax, qword [rdi]
mov eax, dword [rax + 0x90]
sub eax, 8
cdq
idiv dword [rsp + 0x40]
mov edx, 0x20
cmp eax, edx
cmovge edx, eax
test ebx, ebx
mov dword [rsp + 0x6c], edx
je 0x140295af4
cmp ebx, 1
jne 0x140295ae9
mov rax, qword [r14]
lea rcx, [rax + 4]
call fcn.14024e170
lea r13d, [rax*4]
mov eax, 0x20
cmp r13d, eax
cmovl r13d, eax
cmp edx, r13d
jge 0x140295aff
mov r13d, dword [rsp + 0x6c]
lea ebx, [rbx + rbx + 1]
jmp 0x140295aff
mov ebx, 1
mov r13d, 0x20
lea rax, [rdi + 0x3c]
mov qword [rsp + 0x88], rax
mov rcx, qword [rsp + 0x88]
movsxd rax, ebx
xor r15d, r15d
lea rdx, [rax*8]
mov qword [rsp + 0x80], rax
call fcn.140294a00
mov rbp, rax
mov eax, dword [rsp + 0x40]
imul r13d, eax
add r13d, 8
movsxd rax, r13d
add rax, 0x10
mov qword [rsp + 0x50], rax
cmp ebx, r15d
jle 0x140295b7a
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x88]
call fcn.140294a00
test rax, rax
je 0x140295b75
lea rdx, [rax + 0x10]
mov dword [rax + 8], r13d
mov qword [rax], rdx
mov qword [rbp + r15*8], rax
inc r15
jmp 0x140295b49
cmp dword [rdi + 0x3c], 0
jne 0x140295cfb
xor eax, eax
cmp ebx, eax
jle 0x140295bac
mov rdx, qword [rbp + rax*8]
xor r10d, r10d
mov cl, byte [rsp + 0x40]
mov rdx, qword [rdx]
mov byte [rdx], cl
mov rdx, qword [rbp + rax*8]
inc rax
mov rdx, qword [rdx]
mov dword [rdx + 4], r10d
jmp 0x140295b86
xor r13d, r13d
cmp dword [r12 + 0x20], r13d
jle 0x140295cf5
cmp dword [rsp + 0xa8], r13d
je 0x140295bea
mov eax, dword [r12]
mov rcx, rdi
lea edx, [rax + 0x10000]
shl rdx, 0x25
add rdx, r13
call fcn.14024ac30
mov r15, rax
mov qword [rsp + 0x90], rax
jmp 0x140295bf8
xor r9d, r9d
mov r15, r14
mov qword [rsp + 0x90], r9
xor eax, eax
test r15, r15
je 0x140295cbd
mov rax, qword [r15]
cmp byte [rax], 4
setne al
xor r8d, r8d
movzx eax, al
mov qword [rsp + 0x50], r8
lea eax, [rax*4 + 4]
mov dword [rsp + 0x64], eax
mov eax, dword [r15 + 8]
sub eax, 8
cdq
idiv dword [rsp + 0x64]
mov dword [rsp + 0xac], eax
mov edx, dword [rsp + 0x50]
cmp dword [rsp + 0xac], edx
jle 0x140295ca6
cmp dword [rsp + 0x64], 4
mov rax, qword [r15]
mov rdx, qword [rsp + 0x50]
jne 0x140295c6c
lea rcx, [rax + rdx*4 + 8]
cmp dword [rcx], 0
jne 0x140295c62
inc qword [rsp + 0x50]
jmp 0x140295c35
call fcn.14024e170
mov r9d, eax
jmp 0x140295c7f
lea rcx, [rax + rdx*8 + 8]
cmp qword [rcx], 0
je 0x140295c5b
call fcn.14024e180
mov r9, rax
test r9, r9
je 0x140295c5b
mov rax, r9
xor edx, edx
mov r8d, ebx
div qword [rsp + 0x80]
mov rcx, qword [rbp + rdx*8]
xor edx, edx
call fcn.14024fca0
test eax, eax
je 0x140295c5b
jmp 0x140295ca8
xor eax, eax
test r13, r13
jne 0x140295cbd
mov rdx, qword [rbp]
mov rcx, qword [r15]
mov rdx, qword [rdx]
mov cl, byte [rcx + 1]
mov byte [rdx + 1], cl
mov rcx, qword [rsp + 0x90]
mov dword [rsp + 0x50], eax
inc r13
call fcn.1402c4500
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x140295baf
mov edx, ebx
mov rcx, rbp
call fcn.14024f0b0
lea ebx, [rbx + rbx + 1]
mov r13d, dword [rsp + 0x6c]
jmp 0x140295b0b
cmp dword [rdi + 0x3c], 0
je 0x140295d0b
mov edx, ebx
mov rcx, rbp
xor ebx, ebx
call fcn.14024f0b0
xor ebp, ebp
jmp 0x140295d77
mov rax, qword [rsp + 0x38]
xor edx, edx
mov r8d, ebx
xor r13d, r13d
mov r9, qword [rsp + 0x38]
div qword [rsp + 0x80]
mov rcx, qword [rbp + rdx*8]
mov edx, 1
call fcn.14024fca0
cmp ebx, r13d
jle 0x140295d63
mov rax, qword [rbp + r13*8]
mov rcx, rdi
mov edx, dword [r12]
mov r9d, dword [rax + 8]
mov r8, qword [rax]
add edx, 0x10000
shl rdx, 0x25
add rdx, r13
inc r13
call fcn.14024ad50
jmp 0x140295d34
mov rdx, qword [rdi + 0xa0]
mov dword [r12 + 0x20], ebx
mov rcx, rdi
call fcn.140257440
mov rcx, r14
call fcn.1402c4500
mov edx, ebx
mov rcx, rbp
call fcn.14024f0b0
jmp 0x140295a43
dec dword [rsp + 0x68]
sub qword [rsp + 0x98], 0x38
jmp 0x140295972
dec qword [rsp + 0x70]
jmp 0x14029592b
mov rcx, qword [rsp + 0x48]
call fcn.1402573f0
xor ecx, ecx
mov ebx, dword [rdi + 0x3c]
mov dword [rdi + 0x3c], ecx
jmp 0x140295f2d
xor edx, edx
test rdi, rdi
mov qword [rsp + 0xb8], rdx
jne 0x140295e26
xor r9d, r9d
mov edx, 2
mov rcx, rsi
lea r8, [rsp + 0xb8]
call fcn.1402562c0
test eax, eax
mov ebx, eax
jne 0x140295f87
mov rbx, qword [rsp + 0xb8]
mov edx, 1
mov r8, qword [rsp + 0x38]
mov rcx, rbx
call fcn.1402c13d0
mov rcx, rbx
call fcn.1402c6e70
cmp eax, 0x64
je 0x140295e26
mov rcx, rbx
call fcn.1402c5f30
jmp 0x140295f2b
mov qword [rsp + 0xc0], rsi
xor r14d, r14d
mov dword [rsp + 0xc8], 0xffffffff
lea r12, [0x140256570]
lea r13, [rsp + 0xc0]
lea r15d, [r14 + 1]
cmp dword [rbp + 0x18], r15d
mov rcx, qword [rsp + 0xb8]
jl 0x140295ef9
mov rax, qword [rbp + 0x28]
cmp byte [rax + r14], 0
jne 0x140295e95
test rcx, rcx
je 0x140295e90
mov edx, r15d
mov qword [rsp + 0x40], rcx
call fcn.1402c22f0
mov rcx, qword [rsp + 0x40]
mov edx, r15d
mov rbx, rax
call fcn.1402c2110
jmp 0x140295eaf
test rdi, rdi
jne 0x140295e9a
inc r14
jmp 0x140295e4b
mov rcx, qword [rdi + r14*8]
call fcn.1402ca010
mov rcx, qword [rdi + r14*8]
mov rbx, rax
call fcn.1402c9e80
mov r9d, eax
mov r8, rbx
xor eax, eax
mov qword [rsp + 0x28], r12
mov edx, 4
mov rcx, rbp
mov qword [rsp + 0x20], r13
mov dword [rsp + 0xcc], eax
call fcn.1402964d0
movsxd rcx, dword [rsp + 0xcc]
mov ebx, eax
mov rax, qword [rsi + 0x20]
lea rdx, [rax + r14*8]
sub qword [rdx], rcx
js 0x140295f0a
inc r14
test ebx, ebx
je 0x140295e4b
jmp 0x140295efb
xor ebx, ebx
test ebx, ebx
mov rax, qword [rsi + 0x18]
jne 0x140295f0f
test rax, rax
jg 0x140295f0f
jmp 0x140295f15
mov ebx, 0x10b
dec qword [rsi + 0x18]
jmp 0x140295f1a
mov ebx, 0x10b
mov rcx, qword [rsp + 0xb8]
call fcn.1402c5f30
test ebx, ebx
jne 0x140295f87
mov ebx, eax
test ebx, ebx
jne 0x140295f87
mov rax, qword [rsp + 0x78]
mov ebx, dword [rax + 0x58]
test ebx, ebx
je 0x140295f87
xor r9d, r9d
mov edx, 7
mov rcx, rsi
lea r8, [rsp + 0xb0]
call fcn.1402562c0
test eax, eax
mov ebx, eax
jne 0x140295f87
mov rbx, qword [rsp + 0xb0]
mov edx, 1
mov r8, qword [rsp + 0x38]
mov rcx, rbx
call fcn.1402c13d0
mov rcx, rbx
call fcn.1402c6e70
mov rcx, rbx
call fcn.1402c5f30
mov ebx, eax
mov rax, qword [rsp + 0x78]
mov edi, ebx
or edi, dword [rax + 0x40]
jne 0x140295fee
xor r9d, r9d
mov edx, 5
mov rcx, rsi
lea r8, [rsp + 0xb0]
call fcn.1402562c0
test eax, eax
mov ebx, eax
jne 0x140295fee
mov rbx, qword [rsp + 0xb0]
mov edx, 1
mov r8, qword [rsp + 0x38]
mov rcx, rbx
call fcn.1402c13d0
mov rcx, rbx
call fcn.1402c6e70
mov rcx, rbx
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1402c5f30
mov eax, ebx
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret