Function at 0x140121010
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.1400e2d10
test eax, eax
mov ebx, eax
jne 0x140121787
mov rcx, qword [rsi + 8]
mov edx, 1
mov r8, qword [rsp + 0x38]
call fcn.14011ed10
test eax, eax
mov ebx, eax
jne 0x140121787
mov rbp, qword [rsi]
cmp dword [rbp + 0x44], 0
je 0x1401215c1
xor r9d, r9d
mov edx, 8
mov rcx, rsi
lea r8, [rsp + 0xc0]
call fcn.1400e2760
test eax, eax
mov ebx, eax
jne 0x140121787
mov rbx, qword [rsp + 0xc0]
mov edx, 1
mov r8, qword [rsp + 0x38]
mov rcx, rbx
call fcn.14014dd80
mov rcx, rbx
call fcn.1401538e0
xor r11d, r11d
cmp eax, 0x64
mov qword [rsp + 0x58], r11
jne 0x1401210e1
mov edx, 1
mov rcx, rbx
call fcn.14014ebf0
mov qword [rsp + 0x58], rax
mov rcx, rbx
call fcn.140152950
test eax, eax
mov ebx, eax
jne 0x14012172d
cmp qword [rsp + 0x58], 0
je 0x14012172d
mov rdi, qword [rsi + 8]
mov rcx, rdi
call fcn.1400e32a0
test rax, rax
mov qword [rsp + 0x48], rax
je 0x1401215b4
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 0x1401215aa
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 0x1401215a0
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 0x14012158e
cmp qword [r12 + 0x18], rcx
jb 0x14012158e
test eax, eax
jne 0x1401211bb
inc qword [r12 + 0x28]
mov edx, dword [r12 + 0x20]
inc dword [rdi + 0x34]
test edx, edx
jle 0x140121266
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.1400d7100
test rax, rax
mov r14, rax
je 0x140121243
mov r9, qword [rsp + 0x38]
xor edx, edx
mov rcx, rax
mov r8d, dword [r12 + 0x20]
call fcn.1400dc170
test eax, eax
jne 0x14012124d
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.1400d7220
mov rcx, r14
call fcn.140150f20
mov eax, 1
jmp 0x14012158e
mov rax, qword [r14]
cmp byte [rax], 4
setne al
movzx eax, al
lea eax, [rax*4 + 4]
mov dword [rsp + 0x40], eax
jmp 0x14012127c
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 0x1401212f4
cmp ebx, 1
jne 0x1401212e9
mov rax, qword [r14]
lea rcx, [rax + 4]
call fcn.1400da640
lea r13d, [rax*4]
mov eax, 0x20
cmp r13d, eax
cmovl r13d, eax
cmp edx, r13d
jge 0x1401212ff
mov r13d, dword [rsp + 0x6c]
lea ebx, [rbx + rbx + 1]
jmp 0x1401212ff
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.140120200
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 0x14012137a
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x88]
call fcn.140120200
test rax, rax
je 0x140121375
lea rdx, [rax + 0x10]
mov dword [rax + 8], r13d
mov qword [rax], rdx
mov qword [rbp + r15*8], rax
inc r15
jmp 0x140121349
cmp dword [rdi + 0x3c], 0
jne 0x1401214fb
xor eax, eax
cmp ebx, eax
jle 0x1401213ac
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 0x140121386
xor r13d, r13d
cmp dword [r12 + 0x20], r13d
jle 0x1401214f5
cmp dword [rsp + 0xa8], r13d
je 0x1401213ea
mov eax, dword [r12]
mov rcx, rdi
lea edx, [rax + 0x10000]
shl rdx, 0x25
add rdx, r13
call fcn.1400d7100
mov r15, rax
mov qword [rsp + 0x90], rax
jmp 0x1401213f8
xor r9d, r9d
mov r15, r14
mov qword [rsp + 0x90], r9
xor eax, eax
test r15, r15
je 0x1401214bd
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 0x1401214a6
cmp dword [rsp + 0x64], 4
mov rax, qword [r15]
mov rdx, qword [rsp + 0x50]
jne 0x14012146c
lea rcx, [rax + rdx*4 + 8]
cmp dword [rcx], 0
jne 0x140121462
inc qword [rsp + 0x50]
jmp 0x140121435
call fcn.1400da640
mov r9d, eax
jmp 0x14012147f
lea rcx, [rax + rdx*8 + 8]
cmp qword [rcx], 0
je 0x14012145b
call fcn.1400da650
mov r9, rax
test r9, r9
je 0x14012145b
mov rax, r9
xor edx, edx
mov r8d, ebx
div qword [rsp + 0x80]
mov rcx, qword [rbp + rdx*8]
xor edx, edx
call fcn.1400dc170
test eax, eax
je 0x14012145b
jmp 0x1401214a8
xor eax, eax
test r13, r13
jne 0x1401214bd
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.140150f20
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x1401213af
mov edx, ebx
mov rcx, rbp
call fcn.1400db580
lea ebx, [rbx + rbx + 1]
mov r13d, dword [rsp + 0x6c]
jmp 0x14012130b
cmp dword [rdi + 0x3c], 0
je 0x14012150b
mov edx, ebx
mov rcx, rbp
xor ebx, ebx
call fcn.1400db580
xor ebp, ebp
jmp 0x140121577
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.1400dc170
cmp ebx, r13d
jle 0x140121563
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.1400d7220
jmp 0x140121534
mov rdx, qword [rdi + 0xa0]
mov dword [r12 + 0x20], ebx
mov rcx, rdi
call fcn.1400e38e0
mov rcx, r14
call fcn.140150f20
mov edx, ebx
mov rcx, rbp
call fcn.1400db580
jmp 0x140121243
dec dword [rsp + 0x68]
sub qword [rsp + 0x98], 0x38
jmp 0x140121172
dec qword [rsp + 0x70]
jmp 0x14012112b
mov rcx, qword [rsp + 0x48]
call fcn.1400e3890
xor ecx, ecx
mov ebx, dword [rdi + 0x3c]
mov dword [rdi + 0x3c], ecx
jmp 0x14012172d
xor edx, edx
test rdi, rdi
mov qword [rsp + 0xb8], rdx
jne 0x140121626
xor r9d, r9d
mov edx, 2
mov rcx, rsi
lea r8, [rsp + 0xb8]
call fcn.1400e2760
test eax, eax
mov ebx, eax
jne 0x140121787
mov rbx, qword [rsp + 0xb8]
mov edx, 1
mov r8, qword [rsp + 0x38]
mov rcx, rbx
call fcn.14014dd80
mov rcx, rbx
call fcn.1401538e0
cmp eax, 0x64
je 0x140121626
mov rcx, rbx
call fcn.140152950
jmp 0x14012172b
mov qword [rsp + 0xc0], rsi
xor r14d, r14d
mov dword [rsp + 0xc8], 0xffffffff
lea r12, [0x1400e2a10]
lea r13, [rsp + 0xc0]
lea r15d, [r14 + 1]
cmp dword [rbp + 0x18], r15d
mov rcx, qword [rsp + 0xb8]
jl 0x1401216f9
mov rax, qword [rbp + 0x28]
cmp byte [rax + r14], 0
jne 0x140121695
test rcx, rcx
je 0x140121690
mov edx, r15d
mov qword [rsp + 0x40], rcx
call fcn.14014eca0
mov rcx, qword [rsp + 0x40]
mov edx, r15d
mov rbx, rax
call fcn.14014eac0
jmp 0x1401216af
test rdi, rdi
jne 0x14012169a
inc r14
jmp 0x14012164b
mov rcx, qword [rdi + r14*8]
call fcn.140156a60
mov rcx, qword [rdi + r14*8]
mov rbx, rax
call fcn.1401568d0
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.140122860
movsxd rcx, dword [rsp + 0xcc]
mov ebx, eax
mov rax, qword [rsi + 0x20]
lea rdx, [rax + r14*8]
sub qword [rdx], rcx
js 0x14012170a
inc r14
test ebx, ebx
je 0x14012164b
jmp 0x1401216fb
xor ebx, ebx
test ebx, ebx
mov rax, qword [rsi + 0x18]
jne 0x14012170f
test rax, rax
jg 0x14012170f
jmp 0x140121715
mov ebx, 0x10b
dec qword [rsi + 0x18]
jmp 0x14012171a
mov ebx, 0x10b
mov rcx, qword [rsp + 0xb8]
call fcn.140152950
test ebx, ebx
jne 0x140121787
mov ebx, eax
test ebx, ebx
jne 0x140121787
mov rax, qword [rsp + 0x78]
mov ebx, dword [rax + 0x58]
test ebx, ebx
je 0x140121787
xor r9d, r9d
mov edx, 7
mov rcx, rsi
lea r8, [rsp + 0xb0]
call fcn.1400e2760
test eax, eax
mov ebx, eax
jne 0x140121787
mov rbx, qword [rsp + 0xb0]
mov edx, 1
mov r8, qword [rsp + 0x38]
mov rcx, rbx
call fcn.14014dd80
mov rcx, rbx
call fcn.1401538e0
mov rcx, rbx
call fcn.140152950
mov ebx, eax
mov rax, qword [rsp + 0x78]
mov edi, ebx
or edi, dword [rax + 0x40]
jne 0x1401217ee
xor r9d, r9d
mov edx, 5
mov rcx, rsi
lea r8, [rsp + 0xb0]
call fcn.1400e2760
test eax, eax
mov ebx, eax
jne 0x1401217ee
mov rbx, qword [rsp + 0xb0]
mov edx, 1
mov r8, qword [rsp + 0x38]
mov rcx, rbx
call fcn.14014dd80
mov rcx, rbx
call fcn.1401538e0
mov rcx, rbx
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140152950
mov eax, ebx
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret