Function at 0x1402d4ae0
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, 0x168
mov rax, qword [rcx]
mov rbx, qword [rcx + 0x10]
mov qword [rsp + 0x1b8], rdx
mov rdx, qword [rax + 8]
mov qword [rsp + 0x38], rax
movzx eax, byte [rbx + 0x10]
mov qword [rsp + 0x1b0], rcx
mov word [rsp + 0x72], 0xffff
imul rax, rax, 0x68
lea rsi, [rdx + rax + 8]
mov rax, qword [rcx + 8]
test byte [rsi + 0x40], 2
mov rbp, qword [rsi + 0x20]
mov qword [rsp + 0x40], rax
je 0x1402d4b43
mov r15, qword [rsi + 0x60]
jmp 0x1402d4bd2
mov eax, dword [rbp + 0x30]
and eax, 0x80
je 0x1402d4b53
mov r15, qword [rbp + 0x10]
jmp 0x1402d4bd2
lea r15, [rsp + 0xc0]
mov ecx, 0x28
mov word [rsp + 0x76], 0
mov rdi, r15
rep stosd dword [rdi], eax
lea rax, [rsp + 0x72]
mov dword [rsp + 0x11c], 0x10003
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0x74]
mov byte [rsp + 0x122], 5
test byte [rsi + 0x40], 1
mov qword [rsp + 0xd0], rax
mov byte [rsp + 0x124], 3
mov ax, word [rbp + 0x3a]
mov qword [rsp + 0xd8], rbp
mov word [rsp + 0x120], 1
mov word [rsp + 0x74], ax
jne 0x1402d4bd2
mov rax, qword [rsi + 0x20]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x1b0]
xor edi, edi
cmp qword [rax + 0x18], 0
jne 0x1402d4bfc
mov rax, qword [rsp + 0x38]
test word [rax + 0x3c], 0x1020
jne 0x1402d4bfc
mov rax, qword [rax]
mov rax, qword [rax]
test byte [rax + 0x31], 0x80
jne 0x1402d4c09
mov dword [rsp + 0x54], 1
jmp 0x1402d4d44
mov al, byte [rsi + 0x40]
test al, 3
jne 0x1402d4bfc
test byte [rbp + 0x30], 0x80
jne 0x1402d4bfc
test al, 0x48
jne 0x1402d4bfc
test byte [rsi + 0x3c], 0x10
jne 0x1402d4bfc
mov rax, qword [rsp + 0x40]
movsx ecx, word [rbp + 0x3a]
movsxd r13, dword [rax + 0x14]
mov r12, qword [rax + 0x20]
mov r14d, ecx
imul r13, r13, 0x38
lea rax, [r12 + r13]
mov qword [rsp + 0x48], rax
call fcn.140235c50
add r14d, eax
cwde
mov dword [rsp + 0x54], eax
lea eax, [r14 - 0x19]
mov word [rsp + 0x58], ax
test edi, edi
jne 0x1402d4bfc
mov rax, qword [rsp + 0x48]
cmp r12, rax
jae 0x1402d4bfc
mov r13, qword [r12 + 0x28]
mov edi, 0
mov rax, r13
and rax, qword [rbx + 8]
jne 0x1402d4d09
xor r8d, r8d
mov rdx, rsi
mov rcx, r12
call fcn.1402cd470
test eax, eax
mov edi, eax
je 0x1402d4d09
xor eax, eax
mov word [rbx + 0x18], 1
mov qword [rbx + 0x20], rax
mov rax, qword [rbx + 0x48]
mov dword [rbx + 0x3c], 1
mov qword [rax], r12
cmp byte [rbp + 0x3f], 2
je 0x1402d4cba
test byte [rbp + 0x31], 0x40
lea eax, [r14 + 0x1c]
je 0x1402d4cbe
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x54]
xor edx, edx
test ax, ax
mov word [rbx + 0x16], 0x2b
cmovs eax, edx
mov edx, 0x2b
mov word [rbx + 0x12], ax
call fcn.14029cb10
mov rcx, qword [rsp + 0x1b0]
mov dword [rbx + 0x38], 0x4000
mov rdx, rbx
mov word [rbx + 0x14], ax
mov rax, qword [rsp + 0x1b8]
or rax, r13
mov qword [rbx], rax
call fcn.1402d75d0
mov edi, eax
add r12, 0x38
jmp 0x1402d4c57
test r15, r15
je 0x1402d51e3
mov r9, qword [r15 + 0x48]
test r9, r9
jne 0x1402d4d4d
mov al, byte [r15 + 0x65]
and al, 2
mov byte [rsp + 0x48], al
je 0x1402d4d64
xor edi, edi
test byte [rsi + 0x40], 2
jne 0x1402d51db
mov r15, qword [r15 + 0x28]
inc dword [rsp + 0x54]
test edi, edi
je 0x1402d4d12
jmp 0x1402d51e3
movzx edx, byte [rsi + 0x3c]
mov ecx, dword [rsi + 0x44]
mov r8, qword [rsp + 0x40]
call fcn.1402d8fc0
test eax, eax
jne 0x1402d4d24
jmp 0x1402d4d30
mov rax, qword [r15 + 0x10]
xor r12d, r12d
xor edi, edi
mov r14w, word [rax]
mov byte [rbx + 0x11], 0
mov rax, qword [rsp + 0x1b8]
mov dword [rbx + 0x3c], r12d
test byte [r15 + 0x64], 4
mov dword [rbx + 0x18], edi
mov word [rbx + 0x1c], 0
mov word [rbx + 0x12], 0
mov qword [rbx], rax
mov eax, dword [rsi + 0x44]
mov word [rbx + 0x16], r14w
mov qword [rbx + 0x20], r15
mov dword [rsp + 0x58], eax
je 0x1402d4db1
xor edi, edi
jmp 0x1402d4e7e
mov rax, qword [rsp + 0x1b0]
xor edi, edi
mov rax, qword [rax]
mov r13, qword [rax + 0x10]
test r13, r13
je 0x1402d4daa
cmp dword [r13], edi
jle 0x1402d4daa
mov rax, rdi
shl rax, 5
mov rcx, qword [r13 + rax + 8]
call fcn.14028bbc0
test rax, rax
mov rcx, rax
jne 0x1402d4deb
inc rdi
jmp 0x1402d4dc7
cmp byte [rax], 0xa7
jne 0x1402d4e27
mov eax, dword [rsp + 0x58]
cmp eax, dword [rcx + 0x2c]
jne 0x1402d4e27
mov edx, dword [rcx + 0x30]
test dx, dx
jns 0x1402d4e08
mov edi, 1
jmp 0x1402d4e7e
movzx ecx, word [r15 + 0x5e]
xor eax, eax
cmp ecx, eax
jle 0x1402d4de6
mov r8, qword [r15 + 8]
mov r8w, word [r8 + rax*2]
inc rax
cmp dx, r8w
jne 0x1402d4e0f
jmp 0x1402d4e01
mov r9, qword [r15 + 0x50]
test r9, r9
je 0x1402d4de6
xor r12d, r12d
movzx eax, word [r15 + 0x5e]
cmp eax, r12d
jle 0x1402d4de6
mov rax, qword [r15 + 8]
cmp word [rax + r12*2], 0xfffe
je 0x1402d4e4e
inc r12
jmp 0x1402d4e33
mov rax, r12
mov r8d, dword [rsp + 0x58]
mov qword [rsp + 0x68], r9
shl rax, 5
mov qword [rsp + 0x60], rcx
mov rdx, qword [r9 + rax + 8]
call fcn.14028a820
mov rcx, qword [rsp + 0x60]
test eax, eax
mov r9, qword [rsp + 0x68]
jne 0x1402d4e49
jmp 0x1402d4e01
mov al, byte [r15 + 0x64]
mov edx, eax
not edx
and dl, 3
jne 0x1402d4ec8
test edi, edi
mov edx, r14d
mov rcx, qword [rsp + 0x40]
movsx r8d, r14w
cmovne edi, dword [rsp + 0x54]
mov dword [rbx + 0x38], 0x100
mov byte [rbx + 0x11], dil
mov eax, dword [rbp + 0x30]
shr eax, 0xc
and eax, 2
sub edx, eax
lea eax, [rdx + 0x10]
mov rdx, rbx
mov word [rbx + 0x14], ax
call fcn.1402d7820
jmp 0x1402d5114
test al, 0x20
je 0x1402d4ed9
xor r11d, r11d
mov qword [rsp + 0x78], r11
jmp 0x1402d4f6d
mov r8, qword [r15 + 0x48]
mov rax, qword [rsi + 0x50]
and rax, qword [r15 + 0x98]
test r8, r8
mov qword [rsp + 0x78], rax
je 0x1402d4f17
mov rax, qword [rsp + 0x38]
xor r9d, r9d
xor r10d, r10d
mov rdx, r15
mov qword [rsp + 0x28], r9
lea r9, [rsp + 0x78]
mov dword [rsp + 0x20], r10d
mov rcx, qword [rax]
call fcn.1402d7c70
mov rax, qword [rsp + 0x78]
mov edx, 1
mov dword [rbx + 0x38], 0x200
shl rdx, 0x3f
cmp rax, rdx
je 0x1402d4f42
mov dl, byte [r15 + 0x65]
and edx, 0x18
cmp dl, 0x10
jne 0x1402d4f68
test rax, rax
je 0x1402d4f6d
mov rax, qword [rsp + 0x38]
mov rdx, r15
mov r8d, dword [rsi + 0x44]
mov rcx, qword [rax + 0x20]
call fcn.1402d45e0
test eax, eax
je 0x1402d4f74
or dword [rbx + 0x38], eax
xor r8d, r8d
mov qword [rsp + 0x78], r8
jmp 0x1402d4f74
test rax, rax
jne 0x1402d4f74
mov dword [rbx + 0x38], 0x240
test edi, edi
mov rcx, qword [rsp + 0x78]
jne 0x1402d4fe4
test byte [rbp + 0x30], 0x80
jne 0x1402d4fec
cmp qword [r15 + 0x48], 0
jne 0x1402d4fec
test byte [rsi + 0x40], 2
jne 0x1402d4fec
test rcx, rcx
jne 0x1402d5133
mov al, byte [r15 + 0x64]
and al, 4
mov byte [rsp + 0x48], al
jne 0x1402d5133
mov eax, dword [rbp + 0x3c]
cmp word [r15 + 0x5c], ax
jge 0x1402d5133
mov rax, qword [rsp + 0x38]
test byte [rax + 0x3c], 4
jne 0x1402d5133
cmp byte [0x1402e2b87], 0
je 0x1402d5133
mov rax, qword [rax]
mov rax, qword [rax]
test byte [rax + 0x60], 0x20
je 0x1402d4fec
jmp 0x1402d5133
mov al, byte [rsp + 0x54]
mov byte [rsp + 0x48], al
mov al, byte [rsp + 0x48]
mov byte [rbx + 0x11], al
movsx eax, word [r15 + 0x5c]
movsx r8d, word [rbp + 0x3c]
imul eax, eax, 0xf
cdq
idiv r8d
test rcx, rcx
lea eax, [r14 + rax + 1]
mov word [rbx + 0x14], ax
je 0x1402d50ef
mov r9d, dword [rsi + 0x44]
lea rax, [rsp + 0x90]
xor r8d, r8d
lea r12d, [r14 + 0x10]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x84], r8d
jle 0x1402d50b6
mov rax, qword [rsp + 0x38]
imul r13, r8, 0x38
mov ecx, 0xa
mov qword [rsp + 0x60], r8
mov rdi, qword [rsp + 0x48]
mov dword [rsp + 0x58], r9d
add r13, qword [rax + 0x90]
xor eax, eax
mov rdx, qword [r13]
mov dword [rsp + 0x88], r9d
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x48]
lea rax, [0x140237c30]
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0xb8], rax
call fcn.1402bbb20
mov r9d, dword [rsp + 0x58]
cmp word [rsp + 0xb4], 0
mov r8, qword [rsp + 0x60]
je 0x1402d50c9
movsx ecx, word [rbx + 0x14]
movsx edx, r12w
call fcn.14029cb10
mov word [rbx + 0x14], ax
jmp 0x1402d50ef
mov eax, dword [r13 + 0x10]
test ax, ax
jg 0x1402d50d7
add r12d, eax
jmp 0x1402d50e7
test byte [r13 + 0x14], 0x82
jne 0x1402d50e3
dec r12d
jmp 0x1402d50e7
sub r12d, 0x14
inc r8
jmp 0x1402d502e
mov rcx, qword [rsp + 0x40]
movsx r8d, r14w
mov rdx, rbx
call fcn.1402d7820
test byte [rsi + 0x3c], 0x10
je 0x1402d5114
cmp qword [r15 + 0x50], 0
je 0x1402d5114
mov word [rbx + 0x16], r14w
jmp 0x1402d5133
mov rcx, qword [rsp + 0x1b0]
mov rdx, rbx
call fcn.1402d75d0
mov word [rbx + 0x16], r14w
test eax, eax
mov edi, eax
jne 0x1402d51e3
mov rax, qword [rsp + 0x1b0]
xor r9d, r9d
mov r8, r15
mov rdx, rsi
mov byte [rax + 0x2c], 0
mov rcx, rax
call fcn.1402d5200
mov edi, eax
mov rax, qword [rsp + 0x1b0]
cmp byte [rax + 0x2c], 1
jne 0x1402d5167
or dword [rbp + 0x30], 0x100
mov rax, qword [rsp + 0x1b0]
mov r12, qword [rax + 0x20]
test r12, r12
je 0x1402d51c3
mov rax, qword [r12]
xor r13d, r13d
mov r14, qword [r12 + 8]
movzx eax, word [rax + 8]
mov dword [rsp + 0x48], eax
mov rax, qword [r14 + 0x18]
mov qword [rsp + 0x58], rax
cmp dword [rsp + 0x48], r13d
jle 0x1402d51ad
mov rcx, r14
inc r13d
add r14, 0x38
call fcn.1402b8e70
jmp 0x1402d5195
mov rcx, qword [r12]
call fcn.14029c450
mov rcx, qword [rsp + 0x58]
mov rdx, r12
call fcn.140284ee0
mov rax, qword [rsp + 0x1b0]
xor edx, edx
xor ecx, ecx
mov dword [rax + 0x28], edx
mov qword [rax + 0x20], rcx
jmp 0x1402d4d32
xor r15d, r15d
jmp 0x1402d4d40
mov eax, edi
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret