Function at 0x1404235b0
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, 0xe8
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0x58], rdx
mov rax, qword [0x140516040]
xor rax, rsp
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0x94], 0xaaaaaaaa
mov dword [rsp + 0x90], 0
mov rdx, qword [rcx]
mov rdi, qword [rcx + 8]
mov rax, qword [rdx]
mov qword [rsp + 0x80], rax
mov rax, qword [rdx + 8]
mov qword [rsp + 0x60], rcx
mov rbx, qword [rcx + 0x10]
movzx ecx, byte [rbx + 0x10]
imul rcx, rcx, 0x68
lea r14, [rax + rcx]
add r14, 8
mov qword [rsp + 0x68], rdx
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x50], rax
mov rax, qword [r14 + 0x20]
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x44], 0
cmp dword [rdi + 0x14], 0
mov r15d, 0
jle 0x1404236e4
mov rax, qword [rdi + 0x20]
add rax, 0x28
xor ecx, ecx
xor r15d, r15d
jmp 0x14042367a
inc r15d
or edx, 0x40
mov word [rax - 0x16], dx
inc ecx
add rax, 0x38
cmp ecx, dword [rdi + 0x14]
jge 0x1404236e4
movzx edx, word [rax - 0x16]
mov r9d, edx
and r9d, 0xffffffbf
mov word [rax - 0x16], r9w
mov r9d, dword [rax - 0xc]
cmp r9d, dword [r14 + 0x44]
jne 0x14042366f
test qword [rax], r8
jne 0x14042366f
movzx r10d, word [rax - 0x14]
test r10d, 0xf7ff
setne r10b
test dl, dl
setns r11b
and r11b, r10b
cmp r11b, 1
jne 0x14042366f
mov r10b, byte [r14 + 0x3c]
test r10b, 0x58
je 0x140423665
mov rsi, qword [rax - 0x28]
mov r11d, dword [rsi + 4]
test r11b, 3
je 0x14042366f
cmp dword [rsi + 0x34], r9d
jne 0x14042366f
test r10b, 0x18
je 0x140423665
and r11d, 2
jne 0x14042366f
jmp 0x140423665
mov dword [rsp + 0x48], r15d
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x88], rdi
mov r12d, 0
cmp qword [rsp + 0x50], 0
je 0x140423782
mov rax, qword [rsp + 0x50]
movsxd r13, dword [rax]
mov dword [rsp + 0x44], 0
mov r15d, 0
test r13, r13
jle 0x140423754
mov rax, qword [rsp + 0x50]
lea rbx, [rax + 8]
lea rbp, [rsp + 0xb0]
xor r15d, r15d
movaps xmm6, xmmword [0x140484a40]
lea rsi, [0x1404f3130]
jmp 0x140423864
shr r12d, 9
and r12d, 1
or r12d, 2
jmp 0x14042377d
mov r12d, 0
cmp r15d, r13d
jne 0x140423782
mov rax, qword [rsp + 0x68]
movzx r12d, word [rax + 0x3c]
test r12b, r12b
jns 0x140423775
test byte [r14 + 0x41], 0x40
je 0x140423746
shr r12d, 6
and r12d, 1
mov dword [rsp + 0x44], r13d
movsxd rsi, dword [rsp + 0x48]
lea rax, [rsi + rsi*4]
mov edi, dword [rsp + 0x44]
movsxd rbx, edi
lea rcx, [rbx + rsi]
shl rcx, 3
lea rdx, [rcx + rax*4]
add rdx, 0x88
mov r14, qword [rsp + 0x80]
mov rcx, qword [r14]
call fcn.1404077d0
test rax, rax
je 0x140423c4d
mov r15, rax
lea rcx, [rax + rsi*8]
lea rax, [rax + rsi*8]
add rax, 0x80
lea rdx, [rsi + rsi*2]
lea rdx, [rcx + rdx*4 + 0x80]
mov qword [rsp + 0x78], rbx
lea rcx, [rdx + rbx*8]
mov qword [r15 + 8], rax
mov qword [rsp + 0x68], rdx
mov qword [r15 + 0x18], rdx
mov qword [r15 + 0x20], rcx
mov r13, qword [rsp + 0x88]
mov qword [r15 + 0x60], r13
mov qword [r15 + 0x68], r14
mov dword [r15 + 0x70], r12d
mov dword [r15 + 0x74], 0
mov r10d, dword [r13 + 0x14]
mov qword [rsp + 0x48], 0
test r10d, r10d
jle 0x140423ad3
mov rdx, qword [r13 + 0x20]
add rdx, 0x20
xor r8d, r8d
xor r9d, r9d
xor ecx, ecx
xor ebp, ebp
jmp 0x1404239e8
cmp eax, 0x9a
jne 0x140423754
mov eax, dword [r12 + 0x2c]
cmp eax, dword [r14 + 0x44]
jne 0x140423754
inc r15
cmp r15, r13
je 0x14042375f
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 + 0xbc], 1
mov qword [rsp + 0x98], 0
lea rax, [0x14028c340]
mov qword [rsp + 0xa0], rax
lea rax, [0x1401c7790]
mov qword [rsp + 0xa8], rax
test r12, r12
je 0x140423858
lea rcx, [rsp + 0x98]
mov rdx, r12
call fcn.14028c480
cmp word [rsp + 0xbc], 0
jne 0x140423858
add rdi, rbx
test byte [rdi + 0x10], 2
jne 0x140423754
movzx eax, byte [r12]
cmp eax, 0x67
jne 0x14042383e
mov rax, qword [r12 + 0x10]
cmp byte [rax], 0x9a
jne 0x140423754
mov ecx, dword [rax + 0x2c]
cmp ecx, dword [r14 + 0x44]
jne 0x140423754
movsx rax, word [rax + 0x30]
mov word [r12 + 0x30], ax
test rax, rax
js 0x140423858
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 8]
lea rdx, [rax + rax*2]
movzx eax, word [rcx + rdx*8 + 0x12]
bt eax, 9
jae 0x140423966
lea rcx, [rcx + rdx*8]
mov rcx, qword [rcx]
dec rcx
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140423941
test al, 4
je 0x14042395e
lea rax, [rcx + 1]
cmp byte [rcx + 1], 0
mov rcx, rax
jne 0x14042394f
jmp 0x140423961
mov rax, rcx
inc rax
jmp 0x140423968
xor eax, eax
mov rcx, qword [r12 + 8]
test rcx, rcx
je 0x140423754
test rax, rax
lea rdx, [0x1404f33c0]
cmove rax, rdx
xor edx, edx
jmp 0x140423999
mov r8b, byte [r8 + rsi]
cmp r8b, byte [r9 + rsi]
jne 0x140423754
inc rdx
movzx r8d, byte [rcx + rdx]
movzx r9d, byte [rax + rdx]
cmp r8b, r9b
jne 0x140423988
test r8, r8
jne 0x140423996
jmp 0x140423858
cmp word [rdx - 0xe], 0
js 0x1404239cd
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 [r13 + 0x14]
inc r9d
add rdx, 0x38
cmp r9d, r10d
jge 0x140423ad7
test byte [rdx - 0xe], 0x40
je 0x1404239d8
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 0x1404239b2
cmp r11w, 0x40
jne 0x140423a28
mov r11b, byte [rdx - 9]
mov byte [r10 + 4], r11b
jmp 0x1404239d2
test r11d, 0x180
je 0x140423a4c
movzx r11d, r11w
cmp r11d, 0x100
jne 0x140423a45
mov byte [r10 + 4], 0x47
jmp 0x1404239d2
mov byte [r10 + 4], 0x48
jmp 0x1404239d2
mov byte [r10 + 4], sil
test r11b, 0x3c
je 0x1404239d2
mov rsi, qword [rdx - 0x20]
mov rsi, qword [rsi + 0x18]
mov bl, byte [rsi]
cmp bl, 0xa3
jne 0x140423a6c
mov bl, byte [rsi + 2]
cmp bl, 0xa4
je 0x140423a8d
movzx edi, bl
cmp edi, 0x80
je 0x140423a85
mov edi, dword [rsp + 0x44]
jmp 0x1404239d2
mov rsi, qword [rsi + 0x20]
mov edi, dword [rsp + 0x44]
mov rsi, qword [rsi + 0x20]
cmp dword [rsi], 2
jl 0x1404239d2
mov esi, 1
shl esi, cl
cmp ecx, 0x10
cmovge esi, r8d
or ebp, esi
cmp r11w, 4
je 0x140423ac9
movzx r11d, r11w
cmp r11d, 0x10
jne 0x1404239d2
mov byte [r10 + 4], 8
jmp 0x1404239d2
mov byte [r10 + 4], 0x20
jmp 0x1404239d2
xor ebp, ebp
xor ecx, ecx
mov dword [rsp + 0x44], ebp
mov dword [r15], ecx
test edi, edi
mov r14, qword [rsp + 0x78]
jle 0x140423bb3
lea rbx, [rsp + 0xb0]
shl r14, 5
xor ebp, ebp
movabs rdi, 0xaaaaaaaaaaaaaaaa
movaps xmm6, xmmword [0x140484a40]
lea rsi, [0x14028c340]
lea r12, [0x1401c7790]
mov qword [rsp + 0x48], 0
jmp 0x140423b57
movsx eax, word [r13 + 0x30]
mov rdx, qword [rsp + 0x48]
movsxd rdx, edx
mov rcx, qword [rsp + 0x68]
mov dword [rcx + rdx*8], eax
mov rax, qword [rsp + 0x50]
mov al, byte [rax + rbp + 0x18]
and al, 1
mov byte [rcx + rdx*8 + 4], al
inc edx
mov qword [rsp + 0x48], rdx
add rbp, 0x20
cmp r14, rbp
je 0x140423bb3
mov rax, qword [rsp + 0x50]
mov r13, qword [rax + rbp + 8]
mov qword [rbx + 0x10], rdi
movups xmmword [rbx], xmm6
mov word [rsp + 0xbc], 1
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], r12
test r13, r13
je 0x140423b4e
lea rcx, [rsp + 0x98]
mov rdx, r13
call fcn.14028c480
cmp word [rsp + 0xbc], 0
jne 0x140423b4e
jmp 0x140423b23
mov rax, qword [rsp + 0x48]
mov dword [r15 + 0x10], eax
xor eax, eax
mov rdx, qword [rsp + 0x70]
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 + 0x80]
mov rcx, qword [rdi]
mov r8d, r12d
call fcn.140423fb0
test eax, eax
je 0x140423c7c
mov rsi, qword [rdi]
cmp dword [r15], 0
jle 0x140423c23
xor edi, edi
mov rcx, qword [r15 + rdi*8 + 0x80]
call fcn.1404073e0
mov qword [r15 + rdi*8 + 0x80], 0
inc rdi
movsxd rax, dword [r15]
cmp rdi, rax
jl 0x140423bff
mov rcx, rsi
mov rdx, r15
call fcn.140268820
mov ebp, 7
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
cmp rcx, qword [0x140516040]
je 0x140423c5e
call fcn.14029bbb0
int3
lea rdx, str.out_of_memory
mov rcx, r14
call fcn.14019f5f0
jmp 0x140423c2e
mov eax, ebp
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rsi, [rsp + 0x90]
mov qword [rsp + 0x38], rsi
lea rdi, [rsp + 0x94]
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x44]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov r8, 0xffffffffffffffff
xor r9d, r9d
call fcn.140424040
cmp dword [rsi], 0
jne 0x140423f0b
mov ebp, eax
test eax, eax
je 0x140423d23
cmp dword [r15 + 0x38], 0
je 0x140423cdc
mov rcx, qword [r15 + 0x30]
call fcn.14019a6e0
mov rax, qword [rsp + 0x80]
mov rsi, qword [rax]
cmp dword [r15], 0
jle 0x140423d13
xor edi, edi
mov rcx, qword [r15 + rdi*8 + 0x80]
call fcn.1404073e0
mov qword [r15 + rdi*8 + 0x80], 0
inc rdi
movsxd rax, dword [r15]
cmp rdi, rax
jl 0x140423cef
mov rcx, rsi
mov rdx, r15
call fcn.140268820
jmp 0x140423c33
mov rbx, qword [rsp + 0x58]
not rbx
mov rax, qword [rsp + 0x70]
mov r14, qword [rax]
and r14, rbx
setne cl
mov eax, dword [rsp + 0x94]
test eax, eax
setne dl
or dl, cl
xor ebp, ebp
cmp dl, 1
jne 0x140423ccc
test eax, eax
jne 0x140423f45
mov qword [rsp + 0x50], 0
xor r11d, r11d
lea rax, [r12*4]
lea r13, [rax + rax*2]
xor esi, esi
mov dword [rsp + 0x48], r11d
jmp 0x140423d90
lea rdi, [rsp + 0x94]
mov r11d, dword [rsp + 0x68]
test ebp, ebp
jne 0x140423ccc
test r12d, r12d
jle 0x140423ebf
mov rax, rsi
mov rcx, qword [rsp + 0x88]
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 0x140423db6
cmp rsi, 0xffffffffffffffff
je 0x140423ebf
xor ebp, ebp
cmp rsi, r14
je 0x140423d88
cmp rsi, qword [rsp + 0x50]
je 0x140423d88
mov dword [rsp + 0x68], r11d
mov r8, rsi
mov rax, rdi
mov rdi, qword [rsp + 0x58]
or r8, rdi
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x44]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x60]
mov rdx, rdi
xor r9d, r9d
call fcn.140424040
mov ebp, eax
mov rax, qword [rsp + 0x70]
cmp qword [rax], rdi
jne 0x140423d7b
cmp dword [rsp + 0x94], 0
mov eax, 1
mov r11d, dword [rsp + 0x68]
mov dword [rsp + 0x48], 1
cmove r11d, eax
lea rdi, [rsp + 0x94]
jmp 0x140423d88
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x44]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov r8, rdx
xor r9d, r9d
mov esi, r11d
call fcn.140424040
mov r11d, esi
cmp dword [rsp + 0x94], 0
mov ebp, eax
mov eax, 1
cmove r11d, eax
jmp 0x140423ec8
xor ebp, ebp
cmp dword [rsp + 0x48], 0
je 0x140423e73
or r11d, ebp
jne 0x140423ccc
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x44]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov r8, rdx
mov r9w, 1
call fcn.140424040
mov ebp, eax
jmp 0x140423ccc
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x44]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov r8, 0xffffffffffffffff
xor r9d, r9d
call fcn.140424040
jmp 0x140423cc6
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x44]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov r8, 0xffffffffffffffff
mov r9w, 1
call fcn.140424040
mov ebp, eax
xor r11d, r11d
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
and rax, rbx
mov qword [rsp + 0x50], rax
sete al
test ebp, ebp
jne 0x140423ccc
mov r11b, al
jmp 0x140423d66