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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
movaps xmmword [rsp + 0xe0], xmm6
mov qword [rsp + 0x60], rdx
mov rax, qword [0x1404fe040]
xor rax, rsp
mov qword [rsp + 0xd8], rax
mov dword [rsp + 0xa4], 0xaaaaaaaa
mov dword [rsp + 0xa0], 0
mov rdx, qword [rcx]
mov r14, qword [rcx + 8]
mov rax, qword [rdx]
mov qword [rsp + 0x90], rax
mov rax, qword [rdx + 8]
mov qword [rsp + 0x68], rcx
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x80], rcx
movzx ecx, byte [rcx + 0x10]
imul rcx, rcx, 0x68
lea rsi, [rax + rcx]
add rsi, 8
mov qword [rsp + 0x70], rdx
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x58], rax
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0x88], rax
cmp dword [r14 + 0x14], 0
mov qword [rsp + 0x98], r14
jle 0x14040e536
mov rax, qword [r14 + 0x20]
add rax, 0x28
xor ecx, ecx
xor edx, edx
jmp 0x14040e564
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x50], 0
jmp 0x14040e5dd
inc edx
or r9d, 0x40
mov word [rax - 0x16], r9w
inc ecx
add rax, 0x38
cmp ecx, dword [r14 + 0x14]
jge 0x14040e5cc
movzx r9d, word [rax - 0x16]
mov r10d, r9d
and r10d, 0xffffffbf
mov word [rax - 0x16], r10w
mov r10d, dword [rax - 0xc]
cmp r10d, dword [rsi + 0x44]
jne 0x14040e558
test qword [rax], r8
jne 0x14040e558
movzx r11d, word [rax - 0x14]
test r11d, 0xf7ff
setne r11b
test r9b, r9b
setns bl
and bl, r11b
cmp bl, 1
jne 0x14040e558
mov r11b, byte [rsi + 0x3c]
test r11b, 0x58
je 0x14040e54d
mov rbx, qword [rax - 0x28]
mov edi, dword [rbx + 4]
test dil, 3
je 0x14040e558
cmp dword [rbx + 0x34], r10d
jne 0x14040e558
test r11b, 0x18
je 0x14040e54d
and edi, 2
jne 0x14040e558
jmp 0x14040e54d
mov qword [rsp + 0x78], 0
movsxd rax, edx
mov qword [rsp + 0x50], rax
mov r14d, 0
cmp qword [rsp + 0x58], 0
je 0x14040e669
mov rax, qword [rsp + 0x58]
movsxd r13, dword [rax]
mov qword [rsp + 0x78], 0
mov r15d, 0
test r13, r13
jle 0x14040e63c
mov rax, qword [rsp + 0x58]
lea rbx, [rax + 8]
lea rbp, [rsp + 0xc0]
xor r15d, r15d
movaps xmm6, xmmword [0x140470090]
lea r14, [0x1404dccc0]
jmp 0x14040e750
shr r14d, 9
and r14d, 1
or r14d, 2
jmp 0x14040e664
mov r14d, 0
cmp r15d, r13d
jne 0x14040e669
mov rax, qword [rsp + 0x70]
movzx r14d, word [rax + 0x3c]
test r14b, r14b
jns 0x14040e65c
test byte [rsi + 0x41], 0x40
je 0x14040e62e
shr r14d, 6
and r14d, 1
mov qword [rsp + 0x78], r13
mov rbx, qword [rsp + 0x50]
lea rax, [rbx + rbx*4]
mov r13, qword [rsp + 0x78]
movsxd rdi, r13d
lea rcx, [rbx + rdi]
shl rcx, 3
lea rdx, [rcx + rax*4]
add rdx, 0x88
mov rsi, qword [rsp + 0x90]
mov rcx, qword [rsi]
call fcn.1403f2b10
test rax, rax
je 0x14040eb3a
mov r15, rax
lea rcx, [rax + rbx*8]
lea rax, [rax + rbx*8]
add rax, 0x80
lea rdx, [rbx + rbx*2]
lea rdx, [rcx + rdx*4 + 0x80]
mov qword [rsp + 0x88], rdi
lea rcx, [rdx + rdi*8]
mov qword [r15 + 8], rax
mov qword [rsp + 0x70], rdx
mov qword [r15 + 0x18], rdx
mov qword [r15 + 0x20], rcx
mov r12, qword [rsp + 0x98]
mov qword [r15 + 0x60], r12
mov qword [r15 + 0x68], rsi
mov dword [r15 + 0x70], r14d
mov dword [r15 + 0x74], 0
mov r10d, dword [r12 + 0x14]
mov qword [rsp + 0x50], 0
test r10d, r10d
jle 0x14040e9b9
mov rdx, qword [r12 + 0x20]
add rdx, 0x20
xor r8d, r8d
xor r9d, r9d
xor ecx, ecx
xor ebp, ebp
jmp 0x14040e8d7
cmp eax, 0x9a
jne 0x14040e63c
mov eax, dword [r12 + 0x2c]
cmp eax, dword [rsi + 0x44]
jne 0x14040e63c
inc r15
cmp r15, r13
je 0x14040e647
mov rdi, r15
shl rdi, 5
mov r12, qword [rbx + rdi]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rbp + 0x10], rcx
movups xmmword [rbp], xmm6
mov word [rsp + 0xcc], 1
mov qword [rsp + 0xa8], 0
lea rax, [0x140288370]
mov qword [rsp + 0xb0], rax
lea rax, [0x1401c6da0]
mov qword [rsp + 0xb8], rax
test r12, r12
je 0x14040e744
lea rcx, [rsp + 0xa8]
mov rdx, r12
call fcn.1402884b0
cmp word [rsp + 0xcc], 0
jne 0x14040e744
add rdi, rbx
test byte [rdi + 0x10], 2
jne 0x14040e63c
movzx eax, byte [r12]
cmp eax, 0x67
jne 0x14040e72b
mov rax, qword [r12 + 0x10]
cmp byte [rax], 0x9a
jne 0x14040e63c
mov ecx, dword [rax + 0x2c]
cmp ecx, dword [rsi + 0x44]
jne 0x14040e63c
movsx rax, word [rax + 0x30]
mov word [r12 + 0x30], ax
test rax, rax
js 0x14040e744
mov rcx, qword [rsp + 0x88]
mov rcx, qword [rcx + 8]
lea rdx, [rax + rax*2]
movzx eax, word [rcx + rdx*8 + 0x12]
bt eax, 9
jb 0x14040e829
xor eax, eax
jmp 0x14040e856
lea rcx, [rcx + rdx*8]
mov rcx, qword [rcx]
dec rcx
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x14040e833
test al, 4
je 0x14040e850
lea rax, [rcx + 1]
cmp byte [rcx + 1], 0
mov rcx, rax
jne 0x14040e841
jmp 0x14040e853
mov rax, rcx
inc rax
mov rcx, qword [r12 + 8]
test rcx, rcx
je 0x14040e63c
test rax, rax
lea rdx, [0x1404dcf50]
cmove rax, rdx
xor edx, edx
jmp 0x14040e887
mov r8b, byte [r8 + r14]
cmp r8b, byte [r9 + r14]
jne 0x14040e63c
inc rdx
movzx r8d, byte [rcx + rdx]
movzx r9d, byte [rax + rdx]
cmp r8b, r9b
jne 0x14040e876
test r8, r8
jne 0x14040e884
jmp 0x14040e744
cmp word [rdx - 0xe], 0
js 0x14040e8bb
mov r11d, 1
shl r11d, cl
cmp ecx, 0x20
cmovge r11d, r8d
or dword [r15 + 0x74], r11d
mov byte [r10 + 4], 2
inc ecx
mov r10d, dword [r12 + 0x14]
inc r9d
add rdx, 0x38
cmp r9d, r10d
jge 0x14040e9bd
test byte [rdx - 0xe], 0x40
je 0x14040e8c7
mov r11d, dword [rdx]
movsxd r10, ecx
lea r10, [r10 + r10*2]
lea r10, [rax + r10*4]
mov dword [r10], r11d
mov dword [r10 + 8], r9d
movzx esi, word [rdx - 0xc]
mov r11d, esi
and r11d, 0x3fff
cmp r11d, 1
je 0x14040e8a0
cmp r11w, 0x40
jne 0x14040e917
mov r11b, byte [rdx - 9]
mov byte [r10 + 4], r11b
jmp 0x14040e8c0
test r11d, 0x180
je 0x14040e93b
movzx r11d, r11w
cmp r11d, 0x100
je 0x14040e934
mov byte [r10 + 4], 0x48
jmp 0x14040e8c0
mov byte [r10 + 4], 0x47
jmp 0x14040e8c0
mov byte [r10 + 4], sil
test r11b, 0x3c
je 0x14040e8c0
mov rsi, qword [rdx - 0x20]
mov rsi, qword [rsi + 0x18]
mov bl, byte [rsi]
cmp bl, 0xa3
jne 0x14040e95b
mov bl, byte [rsi + 2]
cmp bl, 0xa4
je 0x14040e973
movzx edi, bl
cmp edi, 0x80
jne 0x14040e8c0
mov rsi, qword [rsi + 0x20]
mov rsi, qword [rsi + 0x20]
cmp dword [rsi], 2
jl 0x14040e8c0
mov esi, 1
shl esi, cl
cmp ecx, 0x10
cmovge esi, r8d
or ebp, esi
cmp r11w, 4
je 0x14040e9af
movzx r11d, r11w
cmp r11d, 0x10
jne 0x14040e8c0
mov byte [r10 + 4], 8
jmp 0x14040e8c0
mov byte [r10 + 4], 0x20
jmp 0x14040e8c0
xor ebp, ebp
xor ecx, ecx
mov dword [rsp + 0x4c], ebp
mov dword [r15], ecx
test r13d, r13d
mov r14, qword [rsp + 0x88]
jle 0x14040ea9d
lea rbx, [rsp + 0xc0]
shl r14, 5
xor ebp, ebp
movabs rdi, 0xaaaaaaaaaaaaaaaa
movaps xmm6, xmmword [0x140470090]
lea rsi, [0x140288370]
lea r12, [0x1401c6da0]
mov qword [rsp + 0x50], 0
jmp 0x14040ea41
movsx eax, word [r13 + 0x30]
mov rdx, qword [rsp + 0x50]
movsxd rdx, edx
mov rcx, qword [rsp + 0x70]
mov dword [rcx + rdx*8], eax
mov rax, qword [rsp + 0x58]
mov al, byte [rax + rbp + 0x18]
and al, 1
mov byte [rcx + rdx*8 + 4], al
inc edx
mov qword [rsp + 0x50], rdx
add rbp, 0x20
cmp r14, rbp
je 0x14040ea9d
mov rax, qword [rsp + 0x58]
mov r13, qword [rax + rbp + 8]
mov qword [rbx + 0x10], rdi
movups xmmword [rbx], xmm6
mov word [rsp + 0xcc], 1
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], r12
test r13, r13
je 0x14040ea38
lea rcx, [rsp + 0xa8]
mov rdx, r13
call fcn.1402884b0
cmp word [rsp + 0xcc], 0
jne 0x14040ea38
jmp 0x14040ea0d
mov rax, qword [rsp + 0x50]
mov dword [r15 + 0x10], eax
xor eax, eax
mov rdx, qword [rsp + 0x80]
mov word [rdx + 0x12], ax
mov dword [rdx + 0x38], 0x400
mov word [rdx + 0x3c], ax
and byte [rdx + 0x1c], 0xfe
mov r12d, dword [r15]
mov rdi, qword [rsp + 0x90]
mov rcx, qword [rdi]
mov r8d, r12d
call fcn.14040eea0
test eax, eax
je 0x14040eb69
mov rsi, qword [rdi]
cmp dword [r15], 0
jle 0x14040eb10
xor edi, edi
mov rcx, qword [r15 + rdi*8 + 0x80]
call fcn.1403f2790
mov qword [r15 + rdi*8 + 0x80], 0
inc rdi
movsxd rax, dword [r15]
cmp rdi, rax
jl 0x14040eaec
mov rcx, rsi
mov rdx, r15
call fcn.14026a0e0
mov ebp, 7
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
cmp rcx, qword [0x1404fe040]
je 0x14040eb4b
call fcn.140297b50
int3
lea rdx, str.out_of_memory
mov rcx, rsi
call fcn.140198de0
jmp 0x14040eb1b
mov eax, ebp
movaps xmm6, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rsi, [rsp + 0xa0]
mov qword [rsp + 0x38], rsi
lea rdi, [rsp + 0xa4]
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x4c]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov r8, 0xffffffffffffffff
xor r9d, r9d
call fcn.14040ef30
cmp dword [rsi], 0
jne 0x14040edfe
mov ebp, eax
test eax, eax
je 0x14040ec10
cmp dword [r15 + 0x38], 0
je 0x14040ebc9
mov rcx, qword [r15 + 0x30]
call fcn.140193e40
mov rax, qword [rsp + 0x90]
mov rsi, qword [rax]
cmp dword [r15], 0
jle 0x14040ec00
xor edi, edi
mov rcx, qword [r15 + rdi*8 + 0x80]
call fcn.1403f2790
mov qword [r15 + rdi*8 + 0x80], 0
inc rdi
movsxd rax, dword [r15]
cmp rdi, rax
jl 0x14040ebdc
mov rcx, rsi
mov rdx, r15
call fcn.14026a0e0
jmp 0x14040eb20
mov rbx, qword [rsp + 0x60]
not rbx
mov rax, qword [rsp + 0x80]
mov r14, qword [rax]
and r14, rbx
setne cl
mov eax, dword [rsp + 0xa4]
test eax, eax
setne dl
or dl, cl
xor ebp, ebp
cmp dl, 1
jne 0x14040ebb9
test eax, eax
jne 0x14040ee38
mov qword [rsp + 0x58], 0
xor r11d, r11d
lea rax, [r12*4]
lea r13, [rax + rax*2]
xor esi, esi
mov dword [rsp + 0x50], r11d
jmp 0x14040ec80
lea rdi, [rsp + 0xa4]
mov r11d, dword [rsp + 0x70]
test ebp, ebp
jne 0x14040ebb9
test r12d, r12d
jle 0x14040edb2
mov rax, rsi
mov rcx, qword [rsp + 0x98]
mov rcx, qword [rcx + 0x20]
mov rdx, qword [r15 + 8]
mov rsi, 0xffffffffffffffff
xor r8d, r8d
mov r9, rsi
movsxd r10, dword [rdx + r8 + 8]
imul r10, r10, 0x38
mov r10, qword [rcx + r10 + 0x28]
and r10, rbx
cmp r10, rsi
cmovb rsi, r10
cmp r10, rax
cmovbe rsi, r9
add r8, 0xc
cmp r13, r8
jne 0x14040eca6
cmp rsi, 0xffffffffffffffff
je 0x14040edb2
xor ebp, ebp
cmp rsi, r14
je 0x14040ec78
cmp rsi, qword [rsp + 0x58]
je 0x14040ec78
mov dword [rsp + 0x70], r11d
mov r8, rsi
mov rax, rdi
mov rdi, qword [rsp + 0x60]
or r8, rdi
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x4c]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x68]
mov rdx, rdi
xor r9d, r9d
call fcn.14040ef30
mov ebp, eax
mov rax, qword [rsp + 0x80]
cmp qword [rax], rdi
jne 0x14040ec6b
cmp dword [rsp + 0xa4], 0
mov eax, 1
mov r11d, dword [rsp + 0x70]
mov dword [rsp + 0x50], 1
cmove r11d, eax
lea rdi, [rsp + 0xa4]
jmp 0x14040ec78
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x4c]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov r8, rdx
xor r9d, r9d
mov esi, r11d
call fcn.14040ef30
mov r11d, esi
cmp dword [rsp + 0xa4], 0
mov ebp, eax
mov eax, 1
cmove r11d, eax
jmp 0x14040edbb
xor ebp, ebp
cmp dword [rsp + 0x50], 0
je 0x14040ed66
or r11d, ebp
jne 0x14040ebb9
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x4c]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov r8, rdx
mov r9w, 1
call fcn.14040ef30
mov ebp, eax
jmp 0x14040ebb9
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x4c]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov r8, 0xffffffffffffffff
xor r9d, r9d
call fcn.14040ef30
jmp 0x14040ebb3
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x4c]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov r8, 0xffffffffffffffff
mov r9w, 1
call fcn.14040ef30
mov ebp, eax
xor r11d, r11d
mov rax, qword [rsp + 0x80]
mov rax, qword [rax]
and rax, rbx
mov qword [rsp + 0x58], rax
sete al
test ebp, ebp
jne 0x14040ebb9
mov r11b, al
jmp 0x14040ec56