Function at 0x140012e00
Capabilities:
Access peb ldr_data
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push rbp
push r12
lea rbp, [rsp - 0x5d8]
sub rsp, 0x6d8
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x20]
mov r12, qword [rax + 0x40]
mov qword [rbp + 0x10], r12
test r12, r12
jne 0x140012e41
mov eax, 0xfffffff9
add rsp, 0x6d8
pop r12
pop rbp
ret
mov qword [rsp + 0x6f0], rbx
mov rax, 0xffffffffffffffff
mov qword [rsp + 0x6c8], r14
nop dword [rax + rax]
cmp word [r12 + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x140012e60
cmp word [r12 + rax*2], 0x5c
lea rcx, [r12 + rax*2]
je 0x140012e8a
nop dword [rax]
sub rcx, 2
cmp word [rcx], 0x5c
jne 0x140012e80
add rcx, 2
mov edx, 0xc529881a
xor r14d, r14d
mov r9d, 0x341cf07b
mov ebx, r14d
mov r8d, r14d
movzx eax, word [rcx]
test eax, eax
je 0x140012ecb
imul eax, r9d
inc r8d
add rcx, 2
add edx, eax
mov r9d, eax
mov ebx, edx
mov eax, edx
shr ebx, 0x11
shl eax, 0xf
or ebx, eax
cmp r8d, 3
jb 0x140012ea2
test ebx, ebx
jne 0x140012ed9
mov eax, 0xfffffff6
jmp 0x14001304b
mov qword [rsp + 0x6f8], rsi
movabs rsi, 0xb00129022e9bfe82
mov qword [rsp + 0x6d0], r13
movabs r13, 0x4ffed6fdd164017e
mov edx, ebx
mov eax, ebx
imul rax, rsi
mov qword [rsp + 0x6c0], r15
movabs r15, 0x2777358f150e3886
add rax, r15
mov r8, rax
shl rax, 0x20
shr r8, 0x20
or r8, rax
mov qword [rsp + 0x50], r8
lea rcx, [r8 + rdx]
imul rcx, rsi
add rcx, r13
mov r9, rcx
shr rcx, 0x1e
shl r9, 0x22
or r9, rcx
mov rax, r9
mov qword [rsp + 0x58], r9
imul rax, rsi
add rax, rdx
mov rcx, rax
shl rax, 0x21
shr rcx, 0x1f
or rcx, rax
mov qword [rsp + 0x60], rcx
test r8, r8
je 0x140013ae1
test r9, r9
je 0x140013ae1
test rcx, rcx
je 0x140013ae1
mov ecx, 0x9869496a
mov qword [rsp + 0x700], rdi
call fcn.140015400
mov rdi, rax
test rax, rax
jne 0x140012fa7
mov eax, 0xfffffff1
jmp 0x140013029
mov r8d, 0xd19f33d6
mov edx, ebx
mov rcx, rdi
call fcn.140016e30
mov qword [rbp + 0x30], rax
test rax, rax
je 0x140013024
mov r8d, 0x213e757f
mov edx, ebx
mov rcx, rdi
call fcn.140016e30
mov qword [rbp + 0x38], rax
test rax, rax
je 0x140013024
mov r8d, 0xc576f44d
mov edx, ebx
mov rcx, rdi
call fcn.140016e30
mov qword [rbp + 0x40], rax
test rax, rax
je 0x140013024
mov r8d, 0xa09ff1e7
mov edx, ebx
mov rcx, rdi
call fcn.140016e30
mov qword [rbp + 0x48], rax
test rax, rax
je 0x140013024
mov r8d, 0xbd77fc7f
mov edx, ebx
mov rcx, rdi
call fcn.140016e30
mov qword [rbp + 0x50], rax
test rax, rax
jne 0x140013066
mov eax, 0xffffffff
neg eax
mov rdi, qword [rsp + 0x700]
mov r13, qword [rsp + 0x6d0]
mov rsi, qword [rsp + 0x6f8]
mov r15, qword [rsp + 0x6c0]
mov rbx, qword [rsp + 0x6f0]
mov r14, qword [rsp + 0x6c8]
add rsp, 0x6d8
pop r12
pop rbp
ret
lea r8, [rsp + 0x50]
lea rdx, [rbp + 0x30]
call fcn.140015890
mov ebx, eax
test eax, eax
jne 0x140013081
mov eax, 0xfffffff3
jmp 0x14001302b
xor edx, edx
lea rcx, [rbp + 0xa0]
mov r8d, 0x118
call fcn.140013c70
mov rax, rbx
imul rax, rsi
add rax, r15
mov r8, rax
shl rax, 0x20
shr r8, 0x20
or r8, rax
mov qword [rsp + 0x50], r8
lea rcx, [r8 + rbx]
imul rcx, rsi
add rcx, r13
mov r9, rcx
shr rcx, 0x1e
shl r9, 0x22
or r9, rcx
mov rax, r9
mov qword [rsp + 0x58], r9
imul rax, rsi
add rax, rbx
mov rcx, rax
shl rax, 0x21
shr rcx, 0x1f
or rcx, rax
mov qword [rsp + 0x60], rcx
test r8, r8
je 0x140013430
test r9, r9
je 0x140013430
test rcx, rcx
je 0x140013430
lea r8, [rsp + 0x50]
mov edx, ebx
lea rcx, [rbp + 0xa0]
call fcn.140014c70
test eax, eax
jne 0x140013430
movups xmm0, xmmword [rsp + 0x50]
lea r8, [rbp - 0x80]
mov dword [rsp + 0x70], 0xc1121487
lea rdx, [rsp + 0x70]
mov dword [rsp + 0x74], 0xe8d53ee7
movaps xmmword [rbp - 0x80], xmm0
lea rcx, [rbp - 0x20]
movaps xmmword [rbp + 0x20], xmm0
movsd xmm0, qword [rsp + 0x60]
movsd qword [rbp - 0x58], xmm0
movsd qword [rbp - 0x70], xmm0
call fcn.140015e10
lea rdx, [rsp + 0x40]
xor ecx, ecx
movsd xmm0, qword [rax]
movsd qword [rsp + 0x40], xmm0
movzx eax, byte [rax + 8]
mov byte [rsp + 0x48], al
call fcn.1400045e0
movaps xmm2, xmmword [rbp + 0x20]
mov rdx, qword [rsp + 0x60]
movq r10, xmm2
movsd xmm3, qword [rbp - 0x58]
add rdx, 0x13
movq rax, xmm2
movsd qword [rbp - 0x70], xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
movq rcx, xmm0
add rdx, rcx
imul rcx, rax
mov qword [rbp - 0x48], rdx
lea r8, [rcx + rcx*4]
mov rcx, r8
mov qword [rbp - 0x50], r8
imul rcx, r10
lea rax, [rdx + rcx*2]
add rcx, rax
mov rdx, rcx
shl rcx, 0x20
shr rdx, 0x20
or rdx, rcx
mov ecx, 0x2592
movzx eax, dx
xor ax, cx
mov rcx, r10
mov word [rsp + 0x40], ax
mov rax, r10
imul rax, r8
lea r9, [rax + rax*4]
imul rcx, r9
lea rax, [rdx + rcx*2]
add rcx, rax
lea rax, [r8 + 0x13]
add rax, rcx
mov ecx, 0x3224
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, cx
mov rcx, r10
mov word [rsp + 0x42], ax
mov rax, r10
imul rax, r9
lea r8, [rax + rax*4]
imul rcx, r8
lea rax, [rdx + rcx*2]
add rcx, 0x13
add rax, rcx
mov edx, 0x9b35
add rax, r9
mov rcx, rax
shl rax, 0x20
shr rcx, 0x20
or rcx, rax
movzx eax, cx
xor ax, dx
mov word [rsp + 0x44], ax
imul r10, r10
imul r10, r8
movaps xmmword [rbp - 0x80], xmm2
movsd qword [rbp - 0x70], xmm3
lea rdx, [rsp + 0x50]
mov word [rsp + 0x48], r14w
imul rax, r10, 0xf
mov dword [rsp + 0x50], 0x320b2587
add rax, rcx
mov dword [rsp + 0x54], 0x5ed89b09
lea rcx, [r8 + 0x13]
mov dword [rsp + 0x58], 0xbe2b37d6
add rcx, rax
mov dword [rsp + 0x5c], 0x739d82f2
ror rcx, 0x20
lea r8, [rbp - 0x80]
mov eax, 0x5eb2
mov dword [rsp + 0x60], 0x6eb79102
xor cx, ax
mov dword [rsp + 0x64], 0x1a7cb6c1
mov word [rsp + 0x46], cx
lea rcx, [rbp + 0x78]
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x40], xmm0
call fcn.140015b80
lea r8, [rbp - 0x80]
mov dword [rsp + 0x50], 0x321125b4
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x54], 0x5ec19b08
lea rcx, [rbp + 0x30]
mov dword [rsp + 0x58], 0xbe3337e1
movups xmm0, xmmword [rax]
mov dword [rsp + 0x5c], 0x738182cd
mov dword [rsp + 0x60], 0x6eb79118
movups xmmword [rbp - 0x10], xmm0
mov dword [rsp + 0x64], 0x1a1fb6be
movsd xmm1, qword [rax + 0x10]
movsd qword [rbp], xmm1
movzx eax, word [rax + 0x18]
mov word [rbp + 8], ax
mov eax, 0xe51c
mov word [rsp + 0x6c], ax
mov dword [rsp + 0x68], 0x6e6da6c2
movaps xmmword [rbp - 0x80], xmm2
movsd qword [rbp - 0x70], xmm3
call fcn.140015fc0
lea r9, [rsp + 0x40]
lea r8, [rbp - 0x10]
lea rcx, [rbp + 0x58]
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
movups xmmword [rbp + 0x68], xmm1
call fcn.140016830
mov r13, rax
test rax, rax
je 0x140013430
xor edx, edx
lea rcx, [rbp + 0x1c0]
mov r8d, 0x400
call fcn.140013c70
lea rdx, [rbp + 0x1c0]
mov ecx, 0x200
call qword [rbp + 0xb0]
mov edi, eax
test eax, eax
je 0x140013430
mov rsi, qword [rbp + 0x128]
lea ebx, [rdi*2 + 0x14]
call rsi
mov rcx, rax
mov r8d, ebx
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
je 0x140013430
mov r9, rax
lea rdx, [0x140020dcc]
xor r8d, r8d
lea rcx, [rbp + 0x1c0]
call qword [rbp + 0xa8]
mov r15d, eax
test eax, eax
jne 0x14001343a
call rsi
mov rcx, rax
mov r8, rbx
mov edx, 8
call qword [rbp + 0x120]
mov eax, 0xffffffff
jmp 0x14001302b
mov rcx, rbx
call qword [rbp + 0xb8]
mov edx, 0x66
cmp r15d, 0x1000
jae 0x140013479
lea eax, [rdi + 1]
mov word [rbx + rdi*2], dx
mov word [rbx + rax*2], 0x69
lea eax, [rdi + 2]
mov word [rbx + rax*2], 0x6c
lea eax, [rdi + 3]
mov word [rbx + rax*2], 0x65
lea eax, [rdi + 4]
mov word [rbx + rax*2], 0x2e
lea eax, [rdi + 5]
mov qword [rsp + 0x30], r14
mov word [rbx + rax*2], 0x70
xor r9d, r9d
lea eax, [rdi + 6]
mov dword [rsp + 0x28], r14d
mov word [rbx + rax*2], 0x64
xor r8d, r8d
lea eax, [rdi + 7]
mov dword [rbp - 0x60], r14d
mov word [rbx + rax*2], dx
mov rcx, rbx
lea eax, [rdi + 8]
mov dword [rsp + 0x20], 2
mov edx, 0x40000000
mov word [rbx + rax*2], r14w
call qword [rbp + 0xc0]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140013430
mov r8d, dword [rsp + 0x70]
lea r9, [rbp - 0x60]
mov rdx, r13
mov qword [rsp + 0x20], r14
mov rcx, rax
call qword [rbp + 0xc8]
mov rcx, rdi
test eax, eax
jne 0x140013502
call qword [rbp + 0xd0]
mov eax, 0xffffffff
jmp 0x14001302b
call qword [rbp + 0xd0]
cmp dword [rbp - 0x60], r14d
je 0x140013430
mov dword [rsp + 0x28], 5
lea rdx, str.open
xor r9d, r9d
mov qword [rsp + 0x20], r14
mov r8, rbx
xor ecx, ecx
call qword [rbp + 0x1b0]
cmp rax, 0x20
jle 0x140013430
mov r8, qword [rbp - 0x50]
movaps xmm2, xmmword [rbp + 0x20]
mov rax, qword [rbp - 0x48]
movq r10, xmm2
movsd xmm3, qword [rbp - 0x58]
mov rcx, r10
imul rcx, r8
movsd qword [rbp - 0x70], xmm3
movaps xmmword [rbp - 0x80], xmm2
movsd qword [rbp - 0x70], xmm3
mov word [rbp - 0x38], r14w
mov dword [rsp + 0x50], 0x3215259c
mov dword [rsp + 0x54], 0x5ed99b0a
mov dword [rsp + 0x58], 0xbe3537fc
lea rax, [rax + rcx*2]
mov dword [rsp + 0x5c], 0x73b182d7
add rcx, rax
mov dword [rsp + 0x60], 0x6ea19102
mov rdx, rcx
mov dword [rsp + 0x64], 0x1a7cb6d5
shl rcx, 0x20
shr rdx, 0x20
or rdx, rcx
mov ecx, 0x2592
movzx eax, dx
xor ax, cx
mov word [rsp + 0x40], ax
mov rax, r10
imul rax, r8
lea r9, [rax + rax*4]
mov rcx, r9
imul rcx, r10
lea rax, [rdx + rcx*2]
add rcx, rax
lea rax, [r8 + 0x13]
add rax, rcx
mov ecx, 0x3224
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, cx
mov word [rsp + 0x42], ax
mov rax, r9
imul rax, r10
lea r8, [rax + rax*4]
mov rcx, r8
imul rcx, r10
imul r10, r10
lea rax, [rdx + rcx*2]
mov edx, 0x9b35
add rcx, rax
lea rax, [r9 + 0x13]
add rax, rcx
mov rcx, rax
shl rax, 0x20
shr rcx, 0x20
or rcx, rax
movzx eax, cx
add rcx, 0x13
xor ax, dx
lea rdx, [rsp + 0x50]
mov word [rsp + 0x44], ax
imul rax, r10, 0xf
inc rax
imul rax, r8
lea r8, [rbp - 0x80]
add rcx, rax
mov eax, 0x5eb2
ror rcx, 0x20
xor cx, ax
mov word [rsp + 0x46], cx
lea rcx, [rbp + 0x78]
movsd xmm0, qword [rsp + 0x40]
movsd qword [rbp - 0x40], xmm0
call fcn.140015b80
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x10], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rbp], xmm1
movzx eax, word [rax + 0x18]
lea r8, [rbp - 0x80]
mov word [rbp + 8], ax
lea rdx, [rsp + 0x50]
mov eax, 0xe51c
mov dword [rsp + 0x50], 0x321125b4
lea rcx, [rbp + 0x30]
mov word [rsp + 0x6c], ax
mov dword [rsp + 0x54], 0x5ec19b08
mov dword [rsp + 0x58], 0xbe3337e1
mov dword [rsp + 0x5c], 0x738182cd
mov dword [rsp + 0x60], 0x6eb79118
mov dword [rsp + 0x64], 0x1a1fb6be
mov dword [rsp + 0x68], 0x6e6da6c2
movaps xmmword [rbp - 0x80], xmm2
movsd qword [rbp - 0x70], xmm3
call fcn.140015fc0
lea r9, [rbp - 0x40]
lea r8, [rbp - 0x10]
lea rcx, [rbp + 0x58]
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
movups xmmword [rbp + 0x68], xmm1
call fcn.140016830
mov qword [rsp + 0x40], rax
mov rdi, rax
test rax, rax
je 0x140013430
mov eax, 0x5a4d
cmp word [rdi], ax
jne 0x140013430
mov ecx, dword [rdi + 0x3c]
mov eax, 0x4550
cmp word [rcx + rdi], ax
jne 0x140013430
mov eax, 0x8664
cmp word [rcx + rdi + 4], ax
jne 0x140013430
lea r8, [rbp + 0xa0]
mov qword [rsp + 0x70], r14
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.140016b50
mov rbx, rax
test rax, rax
je 0x140013430
mov r9, qword [rsp + 0x70]
test r9, r9
je 0x14001387e
movsxd rax, dword [rax + 0x3c]
cmp dword [rax + rbx + 0xb4], r14d
je 0x14001387e
mov r8d, dword [rax + rbx + 0xb0]
add r8, rbx
mov eax, dword [r8 + 4]
test eax, eax
je 0x14001387e
mov esi, 0xfff
sub rax, 8
shr rax, 1
test eax, eax
je 0x14001386b
lea r10, [r8 + 8]
mov r11d, eax
nop word [rax + rax]
movzx eax, word [r10]
movzx ecx, ax
and ax, si
shr cx, 0xc
cmp cx, 0xa
jne 0x140013813
mov ecx, dword [r8]
movzx eax, ax
add rax, rbx
add qword [rcx + rax], r9
jmp 0x140013861
cmp cx, 3
jne 0x14001382a
mov edx, dword [r8]
movzx eax, ax
add rax, rbx
add rdx, rax
mov eax, r9d
jmp 0x14001385e
cmp cx, 1
jne 0x140013848
mov edx, dword [r8]
movzx eax, ax
add rax, rbx
add rdx, rax
mov rax, r9
shr rax, 0x10
movzx eax, ax
jmp 0x14001385e
cmp cx, 2
jne 0x140013861
mov edx, dword [r8]
movzx eax, ax
add rax, rbx
add rdx, rax
movzx eax, r9w
add qword [rdx], rax
add r10, 2
sub r11, 1
jne 0x1400137f0
mov eax, dword [r8 + 4]
add r8, rax
mov eax, dword [r8 + 4]
test eax, eax
jne 0x1400137d1
movsxd rax, dword [rbx + 0x3c]
add rax, 0x90
add rax, rbx
mov qword [rbp - 0x60], rax
cmp dword [rax + 4], r14d
je 0x1400139a3
mov esi, dword [rax]
add rsi, rbx
mov ecx, dword [rsi + 0xc]
test ecx, ecx
je 0x1400139a3
mov rax, qword [rbp + 0x158]
mov r15, r14
mov qword [rbp - 0x48], rax
mov rax, qword [rbp + 0xf8]
mov qword [rbp - 0x20], rax
mov qword [rsp + 0x70], r14
add rcx, rbx
call rax
mov r13d, dword [rsi]
mov rdi, rax
mov eax, dword [rsi + 0x10]
lea rcx, [rbx + r13]
mov qword [rbp - 0x50], rax
mov r12d, r14d
lea rsi, [rax + rbx]
mov rax, qword [rcx]
test rax, rax
je 0x140013976
mov r15, r14
jns 0x14001393a
test rdi, rdi
jne 0x1400138ff
mov rcx, r14
jmp 0x14001394d
movzx eax, word [rcx]
movsxd r9, dword [rdi + 0x3c]
mov r10d, dword [r9 + rdi + 0x88]
add r10, rdi
sub eax, dword [r10 + 0x10]
mov ecx, dword [r10 + 0x1c]
add rcx, rdi
mov r8d, dword [rcx + rax*4]
mov rcx, r14
mov eax, dword [r9 + rdi + 0x8c]
add r8, rdi
add rax, r10
cmp r8, rax
cmovbe rcx, r8
jmp 0x14001394d
mov rdx, qword [rcx]
mov rcx, rdi
add rdx, 2
add rdx, rbx
call qword [rbp - 0x48]
mov rcx, rax
mov qword [rsi], rcx
add r15, 8
inc r12d
movsxd rax, r12d
lea rcx, [r15 + rbx]
add rcx, r13
lea rsi, [rbx + rax*8]
add rsi, qword [rbp - 0x50]
mov rax, qword [rcx]
test rax, rax
jne 0x1400138f3
mov r15, qword [rsp + 0x70]
mov rax, qword [rbp - 0x60]
add r15, 0x14
mov qword [rsp + 0x70], r15
mov esi, dword [rax]
mov rax, qword [rbp - 0x20]
add rsi, r15
add rsi, rbx
mov ecx, dword [rsi + 0xc]
test ecx, ecx
jne 0x1400138c7
mov r12, qword [rbp + 0x10]
mov rdi, qword [rsp + 0x40]
mov ecx, dword [rdi + 0x3c]
movzx eax, word [rcx + rdi + 0x16]
bt ax, 0xd
jae 0x140013abd
mov eax, dword [rcx + rdi + 0x28]
xor r8d, r8d
add rax, rbx
mov edx, 1
mov rcx, rbx
call rax
test eax, eax
je 0x140013430
movaps xmm0, xmmword [rbp + 0x20]
lea r8, [rbp - 0x80]
movsd xmm3, qword [rbp - 0x58]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x40]
movaps xmmword [rbp - 0x80], xmm0
movsd qword [rbp - 0x70], xmm3
mov dword [rsp + 0x40], 0xf70d0d91
mov dword [rsp + 0x44], 0x9ad42ff6
mov word [rsp + 0x48], 0xd002
call fcn.1400162f0
mov rcx, rax
movsd xmm0, qword [rax]
movzx eax, word [rax + 8]
mov word [rbp - 0x28], ax
movzx eax, byte [rcx + 0xa]
mov byte [rbp - 0x26], al
movsxd rax, dword [rbx + 0x3c]
movsd qword [rbp - 0x30], xmm0
mov ecx, dword [rax + rbx + 0x88]
add rcx, rbx
mov r9d, dword [rcx + 0x20]
mov r11d, dword [rcx + 0x1c]
add r9, rbx
mov edi, dword [rcx + 0x24]
add r11, rbx
mov r10d, dword [rcx + 0x18]
add rdi, rbx
test r10d, r10d
je 0x140013430
nop word [rax + rax]
mov eax, dword [r9]
lea r8, [rbp - 0x30]
add rax, rbx
sub r8, rax
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140013a83
inc rax
test ecx, ecx
jne 0x140013a70
test edx, edx
je 0x140013a9d
inc r14d
add r9, 4
cmp r14d, r10d
jb 0x140013a60
mov eax, 0xffffffff
jmp 0x14001302b
movsxd rax, r14d
movzx ecx, word [rdi + rax*2]
mov eax, dword [r11 + rcx*4]
add rax, rbx
je 0x140013430
mov rcx, r12
call rax
xor eax, eax
jmp 0x14001302b
test al, 2
je 0x140013430
mov eax, dword [rcx + rdi + 0x28]
test rax, rax
je 0x140013430
add rax, rbx
mov rcx, r12
call rax
xor eax, eax
jmp 0x14001302b
mov eax, 0xfffffff5
jmp 0x140013033