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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xad0
mov rax, qword [0x140462840]
xor rax, rsp
mov qword [rsp + Ordinal_2759], rax
mov rax, qword [rdx + 0x30]
xor edi, edi
mov r13, rcx
mov dword [rdx + 0x48], edi
mov rbp, rdx
mov qword [rsp + 0xb8], rcx
mov r14, qword [rbp + 0x38]
mov qword [rsp + 0xb0], rdx
mov edx, 1
cmp byte [rax + 0x14], dl
mov ecx, edi
mov dword [rsp + 0x58], edi
cmove ecx, edx
mov qword [rsp + 0x78], r14
mov dword [rbp + 0x48], ecx
mov rsi, qword [r13 + 0x78]
mov qword [rsp + 0x88], rsi
cmp dword [r13 + 0x48], edi
jle 0x140230048
mov r8d, edi
mov qword [rsp + 0x98], rdi
nop word [rax + rax]
mov rax, qword [rbp + 0x30]
mov rbx, qword [rax + 0x20]
add rbx, r8
mov qword [rsp + 0xa8], rbx
cmp byte [rbx + 8], dil
jne 0x14022f85c
mov dword [rbp + 0x48], edx
movzx eax, byte [rbx + 5]
mov ecx, eax
mov dword [r14 + 0x18], eax
shl rcx, 6
call sub.MSVCR120.dll_malloc
mov qword [r14 + 0x20], rax
test rax, rax
je 0x140230043
mov ecx, dword [rsi + 4]
mov r11d, dword [rsi]
mov eax, dword [rbp + 0x10]
dec eax
xor edx, edx
add eax, ecx
div ecx
xor edx, edx
mov r9d, eax
mov eax, dword [rbp + 0xc]
dec eax
add eax, r11d
div r11d
xor edx, edx
mov r8d, eax
mov eax, dword [rbp + 8]
dec eax
add eax, ecx
div ecx
xor edx, edx
mov r10d, eax
mov eax, dword [rbp + 4]
dec eax
add eax, r11d
div r11d
mov edx, r10d
mov ecx, eax
call fcn.140205ca0
mov qword [r14 + 0x10], rax
test rax, rax
je 0x140230043
mov edx, dword [r14 + 0x18]
movzx ecx, byte [rbx + 8]
dec edx
call fcn.1402443c0
mov r10, rax
mov qword [r14 + 0x28], rax
test rax, rax
je 0x140230043
mov rcx, qword [r14 + 0x10]
lea rax, [rsp + 0xc0]
mov r9d, dword [rcx + 0xc]
mov r8d, dword [rcx + 8]
mov edx, dword [rcx + 4]
mov qword [rsp + 0x28], rax
mov eax, dword [rcx + 0x10]
mov rcx, r10
mov dword [rsp + 0x20], eax
call fcn.1402445a0
mov r12, qword [r14 + 0x20]
mov r15d, edi
mov dword [rsp + 0x38], edi
cmp dword [r14 + 0x18], edi
jle 0x14022fffd
lea r8, [rbx + 0xf8]
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0xa0], r8
nop dword [rax]
mov qword [r12 + 8], rdi
mov ecx, dword [r14 + 0x18]
mov r10d, dword [r14]
sub ecx, r15d
mov r11d, 1
dec ecx
mov edx, r11d
shl edx, cl
dec edx
add r10d, edx
mov edx, r11d
shr r10d, cl
mov dword [r12 + 0x10], r10d
mov ecx, dword [r14 + 0x18]
mov esi, dword [r14 + 4]
sub ecx, r15d
mov r13d, r10d
dec ecx
shl edx, cl
dec edx
add esi, edx
mov edx, r11d
shr esi, cl
mov dword [r12 + 0x14], esi
mov ecx, dword [r14 + 0x18]
mov r9d, dword [r14 + 8]
sub ecx, r15d
mov eax, esi
dec ecx
shl edx, cl
dec edx
add r9d, edx
mov edx, r11d
shr r9d, cl
mov dword [r12 + 0x18], r9d
mov ecx, dword [r14 + 0x18]
mov ebp, dword [r14 + 0xc]
sub ecx, r15d
dec ecx
shl edx, cl
dec edx
add ebp, edx
mov edx, 1
mov r14d, edx
shr ebp, cl
mov dword [r12 + 0x1c], ebp
movzx r11d, byte [r8 - 0x21]
mov ecx, r11d
mov dword [r12 + 0x20], r11d
movzx ebx, byte [r8]
shr r13d, cl
mov dword [r12 + 0x24], ebx
shl r13d, cl
mov ecx, ebx
shr eax, cl
mov dword [rsp + 0x3c], r13d
shl eax, cl
mov ecx, r11d
shl r14d, cl
mov dword [rsp + 0x34], eax
dec r14d
add r14d, r9d
shr r14d, cl
shl r14d, cl
mov r8d, r14d
mov dword [rsp + 0x48], r14d
sub r8d, r13d
shr r8d, cl
mov ecx, ebx
shl edx, cl
mov dword [r12 + 0x28], r8d
dec edx
add edx, ebp
shr edx, cl
shl edx, cl
sub edx, eax
shr edx, cl
mov dword [r12 + 0x2c], edx
imul edx, r8d
mov dword [r12 + 0x30], edx
cmp r10d, r9d
jae 0x14022ffa2
cmp esi, ebp
jae 0x14022ffa2
test r15d, r15d
jne 0x14022fa6f
mov dword [r12 + 0x34], r11d
mov dword [r12 + 0x38], ebx
jmp 0x14022fa9e
inc r13d
shr r13d, 1
inc eax
shr eax, 1
inc r14d
mov dword [rsp + 0x3c], r13d
mov dword [rsp + 0x34], eax
lea eax, [r11 - 1]
shr r14d, 1
mov dword [r12 + 0x34], eax
lea eax, [rbx - 1]
mov dword [rsp + 0x48], r14d
mov dword [r12 + 0x38], eax
mov ecx, dword [r12 + 0x34]
mov rbp, qword [rsp + 0xa8]
movzx eax, byte [rbp + 6]
cmp eax, ecx
cmovl ecx, eax
mov word [r12 + 0x3c], cx
movzx eax, byte [rbp + 7]
mov ecx, dword [r12 + 0x38]
cmp eax, ecx
cmovl ecx, eax
mov eax, 3
test r15d, r15d
mov word [r12 + 0x3e], cx
mov ecx, 1
cmove eax, ecx
mov dword [r12], eax
cdqe
lea rcx, [rax + rax*4]
shl rcx, 3
call sub.MSVCR120.dll_malloc
mov rbx, rax
mov qword [rsp + 0x60], rax
mov qword [r12 + 8], rax
test rax, rax
je 0x140230043
mov rax, rdi
mov dword [rsp + 0x50], edi
mov qword [rsp + 0x90], rax
cmp dword [r12], eax
jle 0x14022ffb1
test r15d, r15d
jne 0x14022fb2a
mov rcx, rdi
jmp 0x14022fb32
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov r14, qword [rsp + 0x78]
lea rax, [rcx + rcx*4]
lea rsi, [rsp + 0xc0]
mov r9d, dword [rsi + rax*8 + 0x10]
lea rsi, [rsi + rax*8]
mov r8d, r15d
mov dword [rbx + 0x10], r9d
movzx eax, word [rbp + rcx*2 + 0xc]
mov dword [rbx + 0x14], eax
mov edx, dword [r14 + 0x18]
movzx ecx, byte [rbp + 8]
dec edx
call fcn.140247ba0
mov rcx, qword [rsp + 0x88]
mov r8d, dword [rbx + 0x14]
mov dword [rbx + 0x20], eax
movzx edx, word [rcx + 0x10]
mov ecx, r8d
add edx, eax
call fcn.14022e3c0
sar r8d, 0xb
mov dword [rbx + 0x18], eax
movzx edx, byte [rbp + 0xd4]
dec edx
add edx, r8d
mov dword [rbx + 0x1c], edx
movzx ecx, byte [rbp + 0xd5]
lea eax, [rcx + rdx]
cmp eax, 0x20
jl 0x14022fbb3
mov ecx, 0x1f
sub ecx, edx
mov dword [rbx + 0x24], ecx
mov qword [rbx + 8], rdi
mov qword [rbx], rdi
mov eax, dword [rsi + 8]
cmp dword [rsi], eax
je 0x14022ff5a
mov eax, dword [rsi + 0xc]
cmp dword [rsi + 4], eax
je 0x14022ff5a
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.140205ca0
mov rcx, rax
mov qword [rbx + 8], rax
test rax, rax
je 0x140230043
mov eax, dword [rsi + 0x20]
mov r9d, dword [rsi + 0x18]
mov r8d, dword [rsi + 0x14]
mov rdx, qword [r14 + 0x10]
mov dword [rsp + 0x28], eax
mov eax, dword [rsi + 0x1c]
mov dword [rsp + 0x20], eax
call fcn.140205c50
mov eax, dword [rsi]
mov rcx, qword [rbx + 8]
mov dword [rcx + 4], eax
mov eax, dword [rsi + 4]
mov rcx, qword [rbx + 8]
mov dword [rcx + 8], eax
mov rcx, qword [rbx + 8]
mov eax, dword [rcx + 0x18]
add eax, dword [rcx + 4]
mov dword [rcx + 0xc], eax
mov rcx, qword [rbx + 8]
mov eax, dword [rcx + 0x14]
add eax, dword [rcx + 8]
mov dword [rcx + 0x10], eax
movsxd rax, dword [r12 + 0x30]
imul rcx, rax, 0x38
call sub.MSVCR120.dll_malloc
mov rsi, rax
mov qword [rbx], rax
test rax, rax
je 0x140230043
mov r15d, dword [r12 + 0x30]
mov r14d, dword [rsp + 0x34]
mov r10d, r13d
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x44], r15d
test r15d, r15d
jle 0x14022ff55
mov edx, 1
nop word [rax + rax]
mov ecx, dword [r12 + 0x34]
mov rax, qword [rbx + 8]
mov r8d, edx
mov r11d, dword [rax + 4]
shl r8d, cl
mov ecx, dword [r12 + 0x38]
add r8d, r10d
shl edx, cl
add edx, r14d
cmp r10d, r11d
mov dword [rsp + 0x80], r8d
cmova r11d, r10d
mov dword [rsi], r11d
mov rax, qword [rbx + 8]
mov r9d, dword [rax + 8]
cmp r14d, r9d
cmova r9d, r14d
mov dword [rsi + 4], r9d
mov rax, qword [rbx + 8]
mov ebp, dword [rax + 0xc]
cmp r8d, ebp
cmovb ebp, r8d
mov dword [rsi + 8], ebp
mov rax, qword [rbx + 8]
mov r8d, dword [rax + 0x10]
cmp edx, r8d
cmovb r8d, edx
mov dword [rsi + 0xc], r8d
cmp ebp, r11d
jbe 0x14022ff8c
cmp r8d, r9d
jbe 0x14022ff8c
movzx ecx, word [r12 + 0x3e]
lea edx, [r8 - 1]
mov r10d, 1
shr r9d, cl
mov eax, r10d
mov r8d, r10d
shl eax, cl
shl r9d, cl
add edx, eax
shr edx, cl
shl edx, cl
movzx ecx, word [r12 + 0x3c]
shl r8d, cl
shr r11d, cl
sub edx, r9d
dec r8d
shl r11d, cl
add r8d, ebp
shr r8d, cl
shl r8d, cl
sub r8d, r11d
shr r8d, cl
mov dword [rsi + 0x10], r8d
movzx ecx, byte [r12 + 0x3e]
mov eax, r8d
shr edx, cl
mov ecx, r8d
mov dword [rsi + 0x14], edx
imul eax, edx
mov dword [rsi + 0x18], eax
call fcn.140245120
mov qword [rsi + 0x28], rax
test rax, rax
je 0x140230043
mov edx, dword [rsi + 0x14]
mov ecx, dword [rsi + 0x10]
call fcn.140245120
mov qword [rsi + 0x30], rax
test rax, rax
je 0x140230043
movsxd rax, dword [rsi + 0x18]
lea rcx, [rax + rax*4]
shl rcx, 4
call sub.MSVCR120.dll_malloc
mov rbx, rax
mov qword [rsi + 0x20], rax
test rax, rax
je 0x140230043
mov r9d, dword [rsi + 0x18]
mov r10d, dword [rsp + 0x30]
mov r8d, r14d
mov dword [rsp + 0x54], r14d
mov edx, 1
mov ebp, r10d
mov dword [rsp + 0x4c], r9d
test r9d, r9d
jle 0x14022ff02
movzx ecx, byte [r12 + 0x3c]
mov r13d, dword [rsi]
mov r14d, dword [rsi + 4]
mov r15d, dword [rsi + 0xc]
mov eax, edx
shl eax, cl
movzx ecx, byte [r12 + 0x3e]
shl edx, cl
mov ecx, dword [rsi + 8]
add eax, ebp
add edx, r8d
cmp ebp, r13d
cmova r13d, ebp
cmp r8d, r14d
cmova r14d, r8d
cmp eax, ecx
cmovb ecx, eax
cmp edx, r15d
cmovb r15d, edx
mov dword [rsp + 0x68], ecx
cmp ecx, r13d
jbe 0x14022febb
cmp r15d, r14d
jbe 0x14022febb
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rbx + 0x28], 0xffffffff
mov qword [rbx + 0x30], rdi
mov qword [rbx + 0x38], rdi
mov dword [rbx], edi
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], rdi
mov dword [rbx + 0x20], edi
mov dword [rbx + 0x24], 3
mov qword [rbx + 0x40], rdi
call fcn.140205ca0
mov qword [rbx + 0x48], rax
test rax, rax
je 0x140230043
mov ecx, dword [rsp + 0x68]
mov dword [rsp + 0x28], r15d
mov r9d, r14d
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0x60]
mov r8d, r13d
mov rdx, qword [rcx + 8]
mov rcx, rax
call fcn.140205c50
mov r9d, dword [rsp + 0x4c]
mov r8d, dword [rsp + 0x54]
mov r10d, dword [rsp + 0x30]
add rbx, 0x50
dec r9d
mov dword [rsp + 0x4c], r9d
movzx ecx, byte [r12 + 0x3c]
mov edx, 1
mov eax, edx
shl eax, cl
add ebp, eax
cmp ebp, dword [rsp + 0x80]
jb 0x14022feea
movzx ecx, byte [r12 + 0x3e]
mov eax, edx
mov ebp, r10d
shl eax, cl
add r8d, eax
mov dword [rsp + 0x54], r8d
test r9d, r9d
jg 0x14022fde0
mov r14d, dword [rsp + 0x40]
mov r15d, dword [rsp + 0x44]
mov r13d, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x60]
mov ecx, dword [r12 + 0x34]
mov eax, edx
shl eax, cl
add r10d, eax
mov dword [rsp + 0x30], r10d
cmp r10d, dword [rsp + 0x48]
jb 0x14022ff38
mov ecx, dword [r12 + 0x38]
mov eax, edx
mov r10d, r13d
shl eax, cl
mov dword [rsp + 0x30], r13d
add r14d, eax
mov dword [rsp + 0x40], r14d
dec r15d
add rsi, 0x38
mov dword [rsp + 0x44], r15d
test r15d, r15d
jg 0x14022fc90
mov rbp, qword [rsp + 0xa8]
mov r15d, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x50]
mov rax, qword [rsp + 0x90]
add rbx, 0x28
inc ecx
inc rax
mov qword [rsp + 0x60], rbx
mov dword [rsp + 0x50], ecx
mov qword [rsp + 0x90], rax
cmp ecx, dword [r12]
jl 0x14022fb20
jmp 0x14022ffb1
mov qword [rsi + 0x20], rdi
mov qword [rsi + 0x28], rdi
mov qword [rsi + 0x30], rdi
mov edx, 1
jmp 0x14022ff07
mov qword [r12 + 8], rdi
mov qword [r12 + 0x2c], rdi
mov dword [r12 + 0x28], edi
mov r8, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x78]
add qword [rsp + 0x70], 3
inc r15d
inc r8
add r12, 0x40
mov qword [rsp + 0xa0], r8
mov dword [rsp + 0x38], r15d
cmp r15d, dword [r14 + 0x18]
jl 0x14022f950
mov rsi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xb8]
mov edx, dword [rsp + 0x58]
mov r8, qword [rsp + 0x98]
add r14, 0x30
inc edx
add rsi, 0x20
add r8, 0x11c
mov dword [rsp + 0x58], edx
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x88], rsi
cmp edx, dword [r13 + 0x48]
jge 0x140230048
mov edx, 1
jmp 0x14022f840
or eax, 0xffffffff
jmp 0x1402300b1
mov rdx, rbp
mov rcx, r13
call fcn.140247770
mov qword [rbp + 0x50], rax
test rax, rax
je 0x140230043
mov rcx, qword [rbp + 0x30]
mov rcx, qword [rcx + 8]
call fcn.140245d50
test eax, eax
jle 0x1402300a6
nop dword [rax]
mov rcx, qword [rbp + 0x30]
mov edx, edi
mov rcx, qword [rcx + 8]
call fcn.140245ca0
mov rcx, rax
call fcn.140245b60
mov rcx, qword [rbp + 0x50]
mov rdx, rax
call fcn.140245da0
mov rcx, qword [rbp + 0x30]
inc edi
mov rcx, qword [rcx + 8]
call fcn.140245d50
cmp edi, eax
jl 0x140230070
mov rcx, qword [rbp + 0x50]
call fcn.140245e70
xor eax, eax
mov rcx, qword [rsp + 0xac0]
xor rcx, rsp
call fcn.140289bf0
mov rbx, qword [rsp + 0xb20]
add rsp, 0xad0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret