Function at 0x14027c390
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
imul rax, rax, 0x68
mov word [rsp + 0x72], 0xffff
lea rsi, [rdx + rax + 8]
mov rax, qword [rcx + 8]
mov rbp, qword [rsi + 0x20]
mov qword [rsp + 0x40], rax
test byte [rsi + 0x40], 2
je 0x14027c3f3
mov r15, qword [rsi + 0x60]
jmp 0x14027c482
mov eax, dword [rbp + 0x30]
and eax, 0x80
je 0x14027c403
mov r15, qword [rbp + 0x10]
jmp 0x14027c482
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 qword [rsp + 0xd0], rax
mov byte [rsp + 0x122], 5
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
test byte [rsi + 0x40], 1
jne 0x14027c482
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 0x14027c4ac
mov rax, qword [rsp + 0x38]
test word [rax + 0x3c], 0x1020
jne 0x14027c4ac
mov rax, qword [rax]
mov rax, qword [rax]
test byte [rax + 0x31], 0x80
jne 0x14027c4b9
mov dword [rsp + 0x54], 1
jmp 0x14027c5f4
mov al, byte [rsi + 0x40]
test al, 3
jne 0x14027c4ac
test byte [rbp + 0x30], 0x80
jne 0x14027c4ac
test al, 0x48
jne 0x14027c4ac
test byte [rsi + 0x3c], 0x10
jne 0x14027c4ac
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.1401dfca0
add r14d, eax
cwde
mov dword [rsp + 0x54], eax
lea eax, [r14 - 0x19]
mov word [rsp + 0x58], ax
test edi, edi
jne 0x14027c4ac
mov rax, qword [rsp + 0x48]
cmp r12, rax
jae 0x14027c4ac
mov r13, qword [r12 + 0x28]
mov edi, 0
mov rax, r13
and rax, qword [rbx + 8]
jne 0x14027c5b9
xor r8d, r8d
mov rdx, rsi
mov rcx, r12
call fcn.140274d20
mov edi, eax
test eax, eax
je 0x14027c5b9
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 0x14027c56a
lea eax, [r14 + 0x1c]
test byte [rbp + 0x31], 0x40
je 0x14027c56e
mov eax, dword [rsp + 0x58]
xor edx, edx
test ax, ax
mov word [rbx + 0x16], 0x2b
mov ecx, dword [rsp + 0x54]
cmovs eax, edx
mov edx, 0x2b
mov word [rbx + 0x12], ax
call fcn.140243b10
mov dword [rbx + 0x38], 0x4000
mov rcx, qword [rsp + 0x1b0]
mov rdx, rbx
mov word [rbx + 0x14], ax
mov rax, qword [rsp + 0x1b8]
or rax, r13
mov qword [rbx], rax
call fcn.14027ef20
mov edi, eax
add r12, 0x38
jmp 0x14027c507
test r15, r15
je 0x14027cad7
mov r9, qword [r15 + 0x48]
test r9, r9
jne 0x14027c5fd
mov al, byte [r15 + 0x65]
and al, 1
mov byte [rsp + 0x48], al
je 0x14027c614
xor edi, edi
test byte [rsi + 0x40], 2
jne 0x14027cacf
mov r15, qword [r15 + 0x28]
inc dword [rsp + 0x54]
test edi, edi
je 0x14027c5c2
jmp 0x14027cad7
movzx edx, byte [rsi + 0x3c]
mov ecx, dword [rsi + 0x44]
mov r8, qword [rsp + 0x40]
call fcn.140280940
test eax, eax
jne 0x14027c5d4
jmp 0x14027c5e0
mov rax, qword [r15 + 0x10]
xor r13d, r13d
xor r12d, r12d
mov r14w, word [rax]
mov rax, qword [rsp + 0x1b8]
mov byte [rbx + 0x11], 0
mov dword [rbx + 0x3c], r13d
mov qword [rbx], rax
mov eax, dword [rsi + 0x44]
mov dword [rbx + 0x18], r12d
mov dword [rsp + 0x58], eax
mov al, byte [r15 + 0x64]
mov word [rbx + 0x1c], 0
mov word [rbx + 0x12], 0
mov word [rbx + 0x16], r14w
mov qword [rbx + 0x20], r15
test al, 4
jne 0x14027c751
mov rdi, qword [rsp + 0x1b0]
mov rdx, qword [rdi]
xor edi, edi
mov r13, qword [rdx + 0x10]
test r13, r13
je 0x14027c751
cmp dword [r13], edi
jle 0x14027c74d
mov rax, rdi
shl rax, 5
mov rcx, qword [r13 + rax + 8]
call fcn.140232f50
mov rcx, rax
test rax, rax
jne 0x14027c6a3
inc rdi
jmp 0x14027c67b
cmp byte [rax], 0xa7
jne 0x14027c6f3
mov eax, dword [rsp + 0x58]
cmp eax, dword [rcx + 0x2c]
jne 0x14027c6f3
mov edx, dword [rcx + 0x30]
test dx, dx
jns 0x14027c6d4
mov al, byte [r15 + 0x64]
mov edx, eax
and edx, 3
cmp dl, 3
jne 0x14027c7a9
mov eax, dword [rsp + 0x54]
jmp 0x14027c75d
movzx ecx, word [r15 + 0x5e]
xor eax, eax
cmp ecx, eax
jle 0x14027c69e
mov r8, qword [r15 + 8]
mov r8w, word [r8 + rax*2]
inc rax
cmp dx, r8w
jne 0x14027c6db
jmp 0x14027c6b9
mov r9, qword [r15 + 0x50]
test r9, r9
je 0x14027c69e
xor r12d, r12d
movzx eax, word [r15 + 0x5e]
cmp eax, r12d
jle 0x14027c69e
mov rax, qword [r15 + 8]
cmp word [rax + r12*2], 0xfffe
je 0x14027c71a
inc r12
jmp 0x14027c6ff
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.140231bc0
mov rcx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
test eax, eax
jne 0x14027c715
jmp 0x14027c6b9
mov al, byte [r15 + 0x64]
mov edx, eax
and edx, 3
cmp dl, 3
jne 0x14027c792
xor eax, eax
mov byte [rbx + 0x11], al
mov eax, dword [rbp + 0x30]
mov edx, r14d
movsx r8d, r14w
mov dword [rbx + 0x38], 0x100
mov rcx, qword [rsp + 0x40]
shr eax, 0xc
and eax, 2
sub edx, eax
lea eax, [rdx + 0x10]
mov rdx, rbx
mov word [rbx + 0x14], ax
call fcn.14027f170
jmp 0x14027ca08
test al, 0x20
je 0x14027c7c1
xor edi, edi
mov dword [rbx + 0x38], 0x240
mov qword [rsp + 0x78], rdi
jmp 0x14027c86b
test al, 0x20
je 0x14027c7c5
xor r11d, r11d
mov dword [rbx + 0x38], 0x240
mov qword [rsp + 0x78], r11
jmp 0x14027c8d7
xor edi, edi
jmp 0x14027c7ca
mov edi, 1
mov r8, qword [r15 + 0x48]
mov rax, qword [rsi + 0x50]
and rax, qword [r15 + 0x98]
mov qword [rsp + 0x78], rax
test r8, r8
je 0x14027c808
xor r9d, r9d
mov rax, qword [rsp + 0x38]
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.14027f5c0
mov ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rbx + 0x38], 0x200
shl rcx, 0x3f
cmp rax, rcx
je 0x14027c833
mov dl, byte [r15 + 0x65]
and edx, 0xc
cmp dl, 8
jne 0x14027c85d
test rax, rax
je 0x14027c862
mov rax, qword [rsp + 0x38]
mov r8d, dword [rsi + 0x44]
mov rdx, r15
mov rcx, qword [rax + 0x20]
call fcn.14027be80
test eax, eax
je 0x14027c857
xor r8d, r8d
or dword [rbx + 0x38], eax
mov qword [rsp + 0x78], r8
test edi, edi
jne 0x14027c8d7
jmp 0x14027c86b
test rax, rax
jne 0x14027c857
mov dword [rbx + 0x38], 0x240
jmp 0x14027c857
mov rax, qword [rsp + 0x78]
test byte [rbp + 0x30], 0x80
jne 0x14027c8df
cmp qword [r15 + 0x48], 0
jne 0x14027c8df
test byte [rsi + 0x40], 2
jne 0x14027c8df
test rax, rax
jne 0x14027ca27
mov al, byte [r15 + 0x64]
and al, 4
mov byte [rsp + 0x48], al
jne 0x14027ca27
mov eax, dword [rbp + 0x3c]
cmp word [r15 + 0x5c], ax
jge 0x14027ca27
mov rax, qword [rsp + 0x38]
test byte [rax + 0x3c], 4
jne 0x14027ca27
cmp byte [0x140288b87], 0
je 0x14027ca27
mov rax, qword [rax]
mov rax, qword [rax]
test byte [rax + 0x60], 0x20
je 0x14027c8df
jmp 0x14027ca27
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 ecx, word [rbp + 0x3c]
imul eax, eax, 0xf
cdq
idiv ecx
cmp qword [rsp + 0x78], 0
lea eax, [r14 + rax + 1]
mov word [rbx + 0x14], ax
je 0x14027c9e3
lea rax, [rsp + 0x90]
mov r9d, dword [rsi + 0x44]
lea r12d, [r14 + 0x10]
xor r8d, r8d
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x84], r8d
jle 0x14027c9aa
mov rax, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x48]
imul r13, r8, 0x38
mov ecx, 0xa
mov qword [rsp + 0x60], r8
add r13, qword [rax + 0x90]
xor eax, eax
mov dword [rsp + 0x58], r9d
mov rdx, qword [r13]
mov dword [rsp + 0x88], r9d
rep stosd dword [rdi], eax
lea rax, [0x1401e1d30]
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0xb8], rax
call fcn.140262fa0
mov r9d, dword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
cmp word [rsp + 0xb4], 0
je 0x14027c9bd
movsx ecx, word [rbx + 0x14]
movsx edx, r12w
call fcn.140243b10
mov word [rbx + 0x14], ax
jmp 0x14027c9e3
mov eax, dword [r13 + 0x10]
test ax, ax
jg 0x14027c9cb
add r12d, eax
jmp 0x14027c9db
test byte [r13 + 0x14], 0x82
jne 0x14027c9d7
dec r12d
jmp 0x14027c9db
sub r12d, 0x14
inc r8
jmp 0x14027c922
mov rcx, qword [rsp + 0x40]
movsx r8d, r14w
mov rdx, rbx
call fcn.14027f170
test byte [rsi + 0x3c], 0x10
je 0x14027ca08
cmp qword [r15 + 0x50], 0
je 0x14027ca08
mov word [rbx + 0x16], r14w
jmp 0x14027ca27
mov rcx, qword [rsp + 0x1b0]
mov rdx, rbx
call fcn.14027ef20
mov word [rbx + 0x16], r14w
mov edi, eax
test eax, eax
jne 0x14027cad7
mov rax, qword [rsp + 0x1b0]
xor r9d, r9d
mov r8, r15
mov rdx, rsi
mov byte [rax + 0x2c], 0
mov rcx, rax
call fcn.14027caf0
mov edi, eax
mov rax, qword [rsp + 0x1b0]
cmp byte [rax + 0x2c], 1
jne 0x14027ca5b
or dword [rbp + 0x30], 0x100
mov rax, qword [rsp + 0x1b0]
mov r12, qword [rax + 0x20]
test r12, r12
je 0x14027cab7
mov rax, qword [r12]
mov r14, qword [r12 + 8]
xor r13d, r13d
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 0x14027caa1
mov rcx, r14
inc r13d
add r14, 0x38
call fcn.140260220
jmp 0x14027ca89
mov rcx, qword [r12]
call fcn.140243450
mov rcx, qword [rsp + 0x58]
mov rdx, r12
call fcn.14022c340
mov rax, qword [rsp + 0x1b0]
xor edx, edx
xor ecx, ecx
mov dword [rax + 0x28], edx
mov qword [rax + 0x20], rcx
jmp 0x14027c5e2
xor r15d, r15d
jmp 0x14027c5f0
mov eax, edi
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret