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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
mov eax, 0x1b38
call fcn.14008f270
sub rsp, rax
lea rbp, [rsp + 0x80]
and rsp, 0xffffffffffffffc0
mov dword [rsp + 0x44], r9d
mov esi, r8d
mov rdi, rdx
mov r14, rcx
mov eax, dword [rcx + 0x264]
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0x520]
mov qword [rdx + 0x40], rax
mov rax, qword [rdx]
mov dword [rax], 0
mov rax, qword [rcx + 0x250]
mov qword [rsp + 0x78], rax
mov rax, qword [rcx + 0x258]
mov rcx, qword [rax + 0x30]
or rcx, qword [rax + 0x38]
setne byte [rdx + 0x30]
mov r8d, dword [rdx + 0x10]
lea rdx, [rsp + 0x6c]
mov rcx, r14
call fcn.140004270
test al, al
jne 0x14002853e
mov r8d, dword [rdi + 0x10]
movzx ecx, byte [rdi + 0x30]
cmp r8d, 0xf6
jge 0x140028566
mov eax, dword [rbp + 0x1b20]
test cl, cl
sete r13b
test eax, eax
sets bl
mov rax, qword [r14 + 0x258]
mov r12, qword [rax + 0x20]
mov r9d, dword [rax + 0x14]
cmp r9d, 0xe
jge 0x14002846b
mov r10, qword [0x142203580]
mov rax, r12
mul qword [0x142203578]
shl rdx, 5
lea rax, [r10 + rdx]
cmp word [r10 + rdx], r12w
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x2c], esi
je 0x140027b5d
movzx r11d, byte [rax + 2]
test r11d, r11d
je 0x140027b5d
lea r15, [rax + 0xa]
mov r10d, 1
cmp word [rax + 0xa], r12w
je 0x140028365
movzx edi, byte [rax + 0xc]
test edi, edi
je 0x140028360
lea rdx, [rax + 0x14]
mov r10d, 2
cmp word [rax + 0x14], r12w
je 0x14002836d
movzx esi, byte [rax + 0x16]
test esi, esi
je 0x14002836d
movzx r8d, byte [0x142203588]
add r8d, 0x107
movzx r9d, byte [rax + 3]
mov r10d, r8d
sub r10d, r9d
and r10d, 0xf8
sub r11d, r10d
movzx r9d, byte [rax + 0xd]
mov r10d, r8d
sub r10d, r9d
and r10d, 0xf8
sub edi, r10d
cmp r11d, edi
cmovle r15, rax
movzx r9d, byte [r15 + 2]
movzx r10d, byte [r15 + 3]
mov r11d, r8d
sub r11d, r10d
and r11d, 0xf8
sub r9d, r11d
mov r11, r15
movzx eax, byte [rax + 0x17]
sub r8d, eax
and r8d, 0xf8
sub esi, r8d
cmp r9d, esi
cmovg r11, rdx
mov rdi, qword [rsp + 0x30]
mov byte [rdi + 0x32], 0
jmp 0x140028328
xor r10d, r10d
mov r11, rax
lea rdx, [r10 + r10*4]
movzx r10d, byte [rax + rdx*2 + 3]
and r10b, 7
or r10b, byte [0x142203588]
mov byte [rax + rdx*2 + 3], r10b
cmp byte [rax + rdx*2 + 2], 0
setne byte [rdi + 0x32]
je 0x140028328
movsx r15d, word [r11 + 6]
cmp r15d, 0x7d02
je 0x14002831d
cmp r15d, 0x7c0a
jge 0x140028438
cmp r15d, 0xffff83f6
jle 0x1400284f1
movzx eax, byte [r11 + 3]
and al, 4
shr al, 2
mov dword [rsp + 0x3c], eax
movzx esi, word [r11 + 4]
test cl, cl
jne 0x1400283b7
movsx eax, word [r11 + 8]
mov dword [rdi + 0x24], eax
cmp eax, 0x7d02
je 0x140028581
cmp r15d, 0x7d02
je 0x140028358
movzx edx, byte [r11 + 3]
xor ecx, ecx
cmp r15d, eax
setg cl
inc ecx
test edx, ecx
cmove r15d, eax
cmp r15d, dword [rsp + 0x44]
jge 0x1400282a0
mov ecx, dword [rsp + 0x2c]
cmp r15d, ecx
cmovg ecx, r15d
mov dword [rsp + 0x2c], ecx
add eax, 0x68
mov dword [rsp + 0x4c], eax
and bl, r13b
mov rax, qword [rdi - 0x38]
mov qword [rsp + 0x80], rax
mov rax, qword [rdi - 0x78]
mov qword [rsp + 0x88], rax
mov eax, dword [rdi - 0x2c]
mov dword [rsp + 0x50], 0x5a
test eax, eax
mov qword [rsp + 0x70], r12
je 0x140027c66
cmp eax, 0x81
je 0x140027c66
and eax, 0x7f
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x60], r11
movzx r12d, bl
mov rdx, qword [rsp + 0x78]
lea rax, [rdx + 0x6ce8]
lea rcx, [rdx + 0x16ce8]
add rdx, 0xfee6e8
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rcx
lea rax, [rsp + 0x80]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rdx
mov dword [rsp + 0xd8], esi
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x114], eax
mov eax, dword [rbp + 0x1b20]
mov dword [rsp + 0x11c], eax
mov rax, qword [r14 + 0x258]
mov rdi, qword [rax + 0x30]
mov rbx, qword [rax + 0x38]
mov eax, 1
test esi, esi
jne 0x140028424
mov rcx, qword [rsp + 0x30]
add rcx, 0x40
mov qword [rsp + 0x98], rcx
neg r12d
mov qword [rsp + 0xa0], r12
lea ecx, [rax + 7]
add eax, 0xd
or rdi, rbx
cmovne eax, ecx
mov dword [rsp + 0x110], eax
xor esi, esi
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x54], 0
mov ebx, r15d
lea rcx, [rsp + 0xb0]
xor edx, edx
call fcn.14000a270
test eax, eax
je 0x1400281de
mov r13d, eax
mov rcx, r14
mov edx, eax
call fcn.140006e30
mov r15d, ebx
test al, al
je 0x140027d35
mov rcx, r14
mov edx, r13d
call fcn.140006aa0
mov r10d, eax
mov r12d, r13d
and r12d, 0x7f
mov r11d, dword [r14 + r12*4]
lea r9d, [rsi + 1]
mov rdi, qword [r14 + 0x258]
cmp ebx, 0xffff83f7
jl 0x140027ea0
mov rax, qword [rsp + 0xa8]
cmp dword [rdi + rax*4 + 8], 0
je 0x140027ea0
cmp r12d, dword [rsp + 0x50]
je 0x140027e3c
mov eax, r10d
xor al, 1
je 0x140027e3c
cmp dword [rsp + 0x4c], 0xffff83f7
jl 0x140027e3c
mov r15d, ebx
cmp esi, 1
mov esi, r9d
jg 0x140027d35
lea rax, [0x1400d33a0]
mov r15d, dword [rax + r11*4]
mov eax, dword [rsp + 0x4c]
add r15d, eax
mov esi, dword [rsp + 0x2c]
cmp r15d, esi
jle 0x1400283ef
mov qword [rsp + 0x58], r11
mov byte [rsp + 0x28], r10b
mov dword [rsp + 0x40], r9d
mov r8d, esi
sub r8d, eax
jge 0x14002837a
shl r8d, 2
mov rcx, r14
mov edx, r13d
call fcn.140010490
mov r15d, esi
mov r9d, dword [rsp + 0x40]
mov esi, r9d
test al, al
movzx r10d, byte [rsp + 0x28]
mov r11, qword [rsp + 0x58]
je 0x140027d35
cmp dword [rsp + 0x54], 1
jg 0x1400284cc
test r11, r11
je 0x140028161
mov rcx, r14
mov edx, r13d
mov r8d, 0xffffff81
mov esi, r9d
mov r15d, r10d
mov dword [rsp + 0x28], r13d
mov r13d, ebx
mov rbx, r12
mov r12, r14
mov r14, rdi
mov rdi, r11
call fcn.140010490
mov r11, rdi
mov rdi, r14
mov r14, r12
mov r12, rbx
mov ebx, r13d
mov r13d, dword [rsp + 0x28]
mov r10d, r15d
mov r9d, esi
mov r15d, ebx
test al, al
je 0x140027d35
mov eax, r13d
sar eax, 7
movsxd rsi, eax
mov ecx, dword [r14 + rsi*4]
mov rdx, qword [0x142233e70]
xor rdx, qword [rdi + 0x20]
test r11, r11
mov dword [rsp + 0x40], r9d
mov qword [rsp + 0x58], rsi
jne 0x1400281aa
mov r15, r14
imul r8, rcx, 0x2d0
lea rax, [0x142231170]
add r8, rax
mov rax, qword [r8 + r12*8]
mov r14, rdi
xor rax, qword [r8 + rsi*8]
xor rax, rdx
mov edx, dword [rdi + 0x14]
cmp edx, 0xd
jge 0x140028515
mov r9, qword [rsp + 0x30]
mov r14, r15
xor r8d, r8d
test r11, r11
sete byte [rsp + 0x28]
setne r8b
mul qword [0x142203578]
mov rax, qword [0x142203580]
shl rdx, 5
prefetcht0 byte [rax + rdx]
mov r15d, dword [rsp + 0x44]
neg r15d
mov dword [r9 + 0x14], r13d
movzx eax, byte [r9 + 0x30]
test rax, rax
setne dil
imul rax, rax, 0x7e9000
add rax, qword [rsp + 0x78]
imul rcx, rcx, 0x3f480
add rcx, rax
imul rax, r8, 0x3f4800
add rcx, rax
imul rax, r12, 0xb40
add rax, rcx
add rax, 0x1c6e8
mov qword [r9 + 8], rax
mov eax, dword [rbp + 0x1b20]
lea esi, [rax - 1]
mov rcx, r14
mov edx, r13d
lea r8, [rsp + 0x900]
mov r9d, r10d
call fcn.140004ca0
mov r9d, dword [rsp + 0x2c]
neg r9d
mov dword [rsp + 0x20], esi
mov rcx, r14
mov rdx, qword [rsp + 0x98]
mov r8d, r15d
call fcn.140027990
xor byte [r14 + 0x264], 1
mov r8d, dword [r14 + r12*4]
mov rdx, r12
shl rdx, 4
lea r11, [0x142233e80]
mov rcx, qword [rdx + r11]
mov rdx, qword [rdx + r11 + 8]
mov rsi, qword [rsp + 0x58]
mov r9, rsi
shl r9, 4
mov r10, qword [r9 + r11]
mov r9, qword [r9 + r11 + 8]
or r9, rdx
xor qword [r14 + 0x178], r9
or r10, rcx
xor qword [r14 + 0x170], r10
mov r11d, r8d
and r11d, 7
shl r11, 4
xor qword [r14 + r11 + 0x178], r9
xor qword [r14 + r11 + 0x170], r10
mov r11d, r8d
sar r11d, 3
shl r11, 4
xor qword [r14 + r11 + 0x1f8], r9
xor qword [r14 + r11 + 0x1f0], r10
mov dword [r14 + r12*4], 0
mov dword [r14 + rsi*4], r8d
mov r8, qword [r14 + 0x258]
mov r9d, dword [r8 + 0x114]
test r9, r9
je 0x1400280c3
mov dword [r14 + r12*4], r9d
mov r10d, r9d
and r10d, 7
shl r10, 4
mov r11, qword [r14 + r10 + 0x178]
or r11, rdx
mov rsi, qword [r14 + r10 + 0x170]
or rsi, rcx
mov qword [r14 + r10 + 0x170], rsi
mov qword [r14 + r10 + 0x178], r11
or qword [r14 + 0x170], rsi
or qword [r14 + 0x178], r11
mov r10d, r9d
sar r10d, 3
shl r10, 4
or qword [r14 + r10 + 0x1f0], rcx
or qword [r14 + r10 + 0x1f8], rdx
inc dword [r14 + r9*4 + 0x210]
and r9d, 0xfffffff8
inc dword [r14 + r9*4 + 0x210]
and dil, byte [rsp + 0x28]
movzx ecx, dil
add dword [rsp + 0x54], ecx
mov rcx, qword [r8 + 0x40]
mov qword [r14 + 0x258], rcx
dec dword [r14 + 0x260]
mov rcx, qword [rcx + 0x20]
and ecx, 0x3fff
dec byte [r14 + rcx + 0x268]
neg eax
mov r15d, ebx
mov r10d, dword [rsp + 0x40]
mov esi, r10d
cmp ebx, eax
jge 0x140027d35
mov r15d, eax
mov esi, r10d
cmp dword [rsp + 0x2c], eax
jge 0x140027d35
mov rcx, qword [rsp + 0x30]
mov r8, qword [rcx]
mov rcx, qword [rcx + 0x40]
mov dword [r8], r13d
lea rdx, [r8 + 4]
test rcx, rcx
je 0x14002813d
mov r9d, dword [rcx]
test r9d, r9d
jne 0x1400283c7
mov dword [rdx], 0
mov r15d, eax
mov esi, r10d
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x2c], eax
cmp eax, dword [rsp + 0x44]
jge 0x1400281e5
jmp 0x140027d35
mov eax, r13d
sar eax, 7
cdqe
mov eax, dword [r14 + rax*4]
imul rax, rax, 0xb4
mov rcx, qword [rsp + 0x80]
add rcx, rax
cmp word [rcx + r12*2], 0
jns 0x140027e50
add rax, qword [rsp + 0x88]
cmp word [rax + r12*2], 0
mov r15d, ebx
mov esi, r9d
js 0x140027d35
jmp 0x140027e50
imul rax, r11, 0x2d0
lea r9, [0x142231170]
add rax, r9
mov rax, qword [rax + r12*8]
imul r8, rcx, 0x2d0
add r8, r9
xor rax, qword [r8 + r12*8]
xor rax, qword [r8 + rsi*8]
xor rax, rdx
mov r9, qword [rsp + 0x30]
jmp 0x140027f01
mov eax, ebx
mov r13d, dword [rsp + 0x48]
mov ebx, eax
cmp eax, 0xffff82ff
je 0x1400284df
mov r8, qword [rsp + 0x30]
mov ecx, dword [r8 + 0x10]
cmp ebx, 0x7c0a
jge 0x140028495
mov eax, ebx
cmp ebx, 0xffff83f6
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x60]
mov esi, dword [rsp + 0x3c]
jle 0x1400284d6
cmp ebx, dword [rsp + 0x44]
setl dl
mov ecx, dword [r8 + 0x24]
movzx r8d, word [r11]
test r13d, r13d
mov rdi, qword [rsp + 0xa0]
jne 0x140028245
cmp r8w, r10w
je 0x14002824a
mov word [r11 + 4], r13w
cmp r8w, r10w
je 0x1400282fa
mov r8b, 2
sub r8b, dl
mov word [r11], r10w
and dil, 1
xor dil, 7
mov byte [r11 + 2], dil
shl sil, 2
or sil, byte [0x142203588]
or sil, r8b
mov byte [r11 + 3], sil
mov word [r11 + 6], ax
mov word [r11 + 8], cx
mov r15d, ebx
mov eax, r15d
lea rsp, [rbp + 0x1ab8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp byte [rdi + 0x32], 0
jne 0x140028289
mov ecx, dword [rdi + 0x10]
cmp r15d, 0x7c0a
jge 0x140028548
mov edx, r15d
cmp r15d, 0xffff83f6
jle 0x140028552
cmp word [r11], r12w
je 0x14002845b
mov word [r11 + 4], 0
mov word [r11], r12w
mov byte [r11 + 2], 1
movzx ecx, byte [0x142203588]
or cl, 2
mov byte [r11 + 3], cl
mov word [r11 + 6], dx
mov word [r11 + 8], ax
jmp 0x140028289
movzx r8d, sil
lea r8d, [rdi + r8*2]
add r8d, 7
movzx r9d, byte [r11 + 2]
add r9d, 0xfffffffc
cmp r8d, r9d
jg 0x140028254
jmp 0x140028286
mov r15d, 0x7d02
jmp 0x140027bb8
test cl, cl
jne 0x14002840a
cmp dword [rdi - 0x2c], 0x81
je 0x14002855c
mov rcx, r14
mov rsi, r11
call fcn.140007210
mov r11, rsi
mov dword [rdi + 0x24], eax
xor esi, esi
mov dword [rsp + 0x3c], 0
mov r15d, eax
jmp 0x140027c08
mov rdi, qword [rsp + 0x30]
mov r11, r15
jmp 0x140027b63
mov r11, rdx
mov rdi, qword [rsp + 0x30]
jmp 0x140027b63
mov rcx, r14
mov edx, r13d
mov r8d, 1
call fcn.140010490
test al, al
mov r9d, dword [rsp + 0x40]
movzx r10d, byte [rsp + 0x28]
mov r11, qword [rsp + 0x58]
jne 0x140027e3c
mov eax, dword [rsp + 0x4c]
cmp ebx, eax
cmovle ebx, eax
mov r15d, ebx
mov esi, r9d
jmp 0x140027d35
mov r15d, 0xffff82ff
mov eax, 0xffff82ff
jmp 0x140027c25
mov dword [r8 + 4], r9d
mov edx, dword [rcx + 4]
test edx, edx
je 0x1400283fe
mov dword [r8 + 8], edx
add r8, 0xc
mov r9d, dword [rcx + 8]
test r9d, r9d
jne 0x1400284ac
mov rdx, r8
jmp 0x14002813d
cmp ebx, r15d
cmovg r15d, ebx
mov esi, r9d
jmp 0x140027d35
add r8, 8
mov rdx, r8
jmp 0x14002813d
mov r15d, 0xffff82ff
mov dword [rsp + 0x3c], 0
xor esi, esi
mov eax, 0xffff82ff
jmp 0x140027c25
mov rcx, r14
mov edx, esi
call fcn.140010300
xor al, 1
movzx eax, al
jmp 0x140027cf4
mov eax, 0x7d00
sub eax, r15d
mov edx, pe_nt_image_headers64
sub edx, r9d
sub r15d, r8d
cmp eax, edx
mov eax, 0x7c09
cmovg r15d, eax
jmp 0x140027bb8
cmp byte [r11 + 2], 4
jbe 0x1400282d7
jmp 0x140028289
lea eax, [r9 - 0xe]
shr eax, 3
movabs rdx, 0x5851f42d4c957f2d
imul rdx, rax
movabs rax, 0x14057b7ef767814f
add rax, rdx
xor r12, rax
jmp 0x140027a5d
add ecx, ebx
mov eax, ecx
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x60]
mov esi, dword [rsp + 0x3c]
jmp 0x140028223
add rcx, 0xc
mov rdx, r8
mov dword [rdx], r9d
add rdx, 4
mov r9d, dword [rcx]
add rcx, 4
test r9d, r9d
je 0x14002813d
jmp 0x1400284b3
mov r13d, dword [rsp + 0x48]
jmp 0x1400281f2
mov eax, ebx
sub eax, ecx
jmp 0x140028223
mov ebx, 0xffff8300
mov rax, qword [rsp + 0x30]
add ebx, dword [rax + 0x10]
jmp 0x140028286
mov eax, pe_nt_image_headers64
sub eax, r9d
add r8d, r15d
add r15d, 0x7d00
cmp r15d, eax
mov r15d, 0xffff83f7
cmovle r15d, r8d
jmp 0x140027bb8
add edx, 0xfffffff3
shr edx, 3
movabs r8, 0x5851f42d4c957f2d
imul r8, rdx
movabs rdx, 0x14057b7ef767814f
add rdx, r8
xor rax, rdx
jmp 0x140027ef9
mov r15d, dword [rsp + 0x6c]
jmp 0x140028289
add ecx, r15d
mov edx, ecx
jmp 0x1400282c6
mov edx, r15d
sub edx, ecx
jmp 0x1400282c6
xor eax, eax
sub eax, dword [rdi - 0x1c]
jmp 0x14002834b
xor r15d, r15d
test cl, cl
jne 0x140028289
mov rcx, r14
call fcn.140007210
mov r15d, eax
jmp 0x140028289
mov rcx, r14
mov qword [rsp + 0x60], r11
call fcn.140007210
mov r11, qword [rsp + 0x60]
mov dword [rdi + 0x24], eax
jmp 0x140027be6