Function at 0x140028550
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, 0x98
mov rsi, rdx
mov qword [rsp + 0x30], rcx
mov r14d, r8d
mov dword [rsp + 0x54], r8d
test r8d, r8d
jle 0x1400285ef
lea rcx, [r14 - 1]
mov eax, r14d
and eax, 3
cmp rcx, 3
jae 0x14002858c
xor ecx, ecx
jmp 0x1400285c2
mov edx, r14d
and edx, 0xfffffffc
lea rbp, [rsi + 0x3c]
xor ecx, ecx
nop dword [rax + rax]
mov dword [rbp - 0x30], ecx
lea ebx, [rcx + 1]
mov dword [rbp - 0x20], ebx
lea ebx, [rcx + 2]
mov dword [rbp - 0x10], ebx
lea ebx, [rcx + 3]
mov dword [rbp], ebx
add rcx, 4
add rbp, 0x40
cmp rdx, rcx
jne 0x1400285a0
test rax, rax
je 0x1400285ef
mov rdx, rcx
shl rdx, 4
add rdx, rsi
add rdx, 0xc
shl rax, 4
xor ebp, ebp
nop dword [rax + rax]
mov dword [rdx + rbp], ecx
add ecx, 1
add rbp, 0x10
cmp rax, rbp
jne 0x1400285e0
mov edi, dword [rsp + 0x54]
movsxd r15, edi
lea r9, [0x14002c270]
mov r8d, 0x10
mov rcx, rsi
mov rdx, r15
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
test edi, edi
jle 0x140028b7c
mov rax, qword [rsp + 0x30]
add rax, 0x18
mov qword [rsp + 0x60], rax
xor eax, eax
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x68], r15
jmp 0x140028655
mov dword [rsi + rcx + 8], 0
add rax, 1
cmp rax, r14
je 0x140028b18
mov rcx, rax
shl rcx, 4
movzx edx, word [rsi + rcx + 4]
test edx, edx
je 0x140028640
movzx ebx, word [rsi + rcx + 6]
mov rbp, rbx
mov qword [rsp + 0x58], rbx
test ebx, ebx
je 0x140028640
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rax
mov rbp, qword [rsp + 0x30]
mov r8d, dword [rbp]
mov ecx, dword [rbp + 8]
mov qword [rsp + 0x80], rdx
lea r13d, [rdx + rcx]
add r13d, 0xffffffff
mov eax, r13d
cdq
idiv ecx
sub r13d, edx
mov r9, qword [rbp + 0x18]
movzx edx, word [r9]
lea esi, [rdx + r13]
mov eax, dword [rbp + 0x10]
mov dword [rsp + 0x48], eax
cmp esi, r8d
jle 0x1400286dc
xor ecx, ecx
mov dword [rsp + 0x28], 0x40000000
mov dword [rsp + 0x24], 0x40000000
xor eax, eax
jmp 0x14002885d
mov dword [rsp + 0x28], 0x40000000
mov qword [rsp + 0x40], rdx
mov eax, edx
xor ecx, ecx
mov qword [rsp + 0x38], rcx
mov rdi, r9
mov rbx, qword [rsp + 0x60]
mov dword [rsp + 0x24], 0x40000000
mov dword [rsp + 0x2c], r8d
jmp 0x140028749
mov eax, dword [rsp + 0x24]
cmp edx, eax
cmovl eax, edx
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x38]
cmovl rax, rbx
mov qword [rsp + 0x38], rax
mov ecx, dword [rsp + 0x2c]
mov rbx, rdi
mov rdi, qword [rdi + 8]
add rbx, 8
movzx eax, word [rdi]
lea esi, [rax + r13]
cmp esi, ecx
jg 0x140028842
test r13d, r13d
jle 0x1400287f0
xor ebp, ebp
mov ecx, eax
xor r10d, r10d
xor r12d, r12d
mov r14, rdi
jmp 0x1400287a6
mov r14, qword [r14 + 8]
movzx r11d, word [r14]
mov edx, r11d
sub edx, ecx
lea ecx, [rdx + r10]
mov r8d, r13d
sub r8d, r10d
cmp ecx, r13d
cmovle r8d, edx
imul r15d, r8d
mov edx, r12d
add ebp, r15d
add r10d, r8d
mov ecx, r11d
mov r12d, edx
cmp esi, r11d
jle 0x1400287f4
movzx edx, word [r14 + 2]
mov r15d, r12d
sub r15d, edx
jge 0x140028770
mov r15d, edx
sub r15d, r12d
imul r15d, r10d
mov r14, qword [r14 + 8]
movzx r11d, word [r14]
mov r8d, r11d
cmp ecx, eax
jae 0x1400287e0
sub r8d, eax
jmp 0x140028795
sub r8d, ecx
jmp 0x140028795
xor edx, edx
xor ebp, ebp
cmp dword [rsp + 0x48], 0
je 0x140028710
mov rax, qword [rsp + 0x58]
add eax, edx
mov rcx, qword [rsp + 0x30]
cmp eax, dword [rcx + 4]
jg 0x14002872b
cmp edx, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x2c]
jl 0x14002882e
jne 0x14002872f
cmp ebp, dword [rsp + 0x28]
jge 0x14002872f
mov eax, edx
mov dword [rsp + 0x24], edx
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x28], ebp
jmp 0x14002872f
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140028854
mov rax, qword [rcx]
movzx eax, word [rax]
jmp 0x140028858
xor ecx, ecx
xor eax, eax
mov rdx, qword [rsp + 0x40]
cmp dword [rsp + 0x48], 1
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x40], eax
jne 0x1400289f0
mov rcx, r9
cmp r13d, edx
jle 0x14002888e
nop dword [rax]
mov rcx, qword [rcx + 8]
movzx eax, word [rcx]
cmp r13d, eax
jg 0x140028880
jmp 0x14002889a
mov rcx, r9
test r9, r9
je 0x1400289f0
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 4]
mov dword [rsp + 0x2c], eax
mov r10, qword [rsp + 0x60]
jmp 0x1400288c2
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x1400289f0
mov qword [rsp + 0x48], rcx
movzx r15d, word [rcx]
mov r12d, r15d
sub r12d, r13d
mov rax, r10
mov rcx, r9
nop word [rax + rax]
mov r9, rcx
mov r10, rax
lea rax, [rcx + 8]
mov rcx, qword [rcx + 8]
movzx ebp, word [rcx]
cmp r12d, ebp
jge 0x1400288e0
movzx eax, word [r9]
xor r14d, r14d
mov ebx, 0
cmp r15w, ax
jbe 0x140028990
xor ebx, ebx
xor ebp, ebp
xor esi, esi
mov rdi, r9
jmp 0x140028954
mov rdi, qword [rdi + 8]
movzx r8d, word [rdi]
mov edx, r8d
sub edx, eax
lea eax, [rdx + rbp]
mov r11d, r13d
sub r11d, ebp
cmp eax, r13d
cmovle r11d, edx
imul ecx, r11d
mov r14d, esi
add ebx, ecx
add ebp, r11d
mov eax, r8d
mov esi, r14d
cmp r8d, r15d
jae 0x140028990
movzx r14d, word [rdi + 2]
mov ecx, esi
sub ecx, r14d
jge 0x140028920
mov ecx, r14d
sub ecx, esi
imul ecx, ebp
mov rdi, qword [rdi + 8]
movzx r8d, word [rdi]
mov r11d, r8d
cmp eax, r12d
jge 0x140028980
sub r11d, r12d
jmp 0x140028944
sub r11d, eax
jmp 0x140028944
mov rax, qword [rsp + 0x58]
add eax, r14d
cmp eax, dword [rsp + 0x2c]
jge 0x1400288b0
cmp r14d, dword [rsp + 0x24]
jg 0x1400288b0
mov rcx, qword [rsp + 0x48]
jl 0x1400289cb
cmp ebx, dword [rsp + 0x28]
jl 0x1400289cb
jne 0x1400288b5
cmp r12d, dword [rsp + 0x40]
jge 0x1400288b5
mov eax, r14d
mov dword [rsp + 0x24], r14d
mov qword [rsp + 0x38], r10
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x28], ebx
jmp 0x1400288b5
mov rbx, qword [rsp + 0x38]
test rbx, rbx
je 0x140028ac0
mov rcx, qword [rsp + 0x58]
add ecx, dword [rsp + 0x24]
mov rax, qword [rsp + 0x30]
cmp ecx, dword [rax + 4]
jg 0x140028ac0
mov rdx, rcx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x140028ac0
mov r9d, dword [rsp + 0x40]
mov r8d, r9d
mov word [rcx], r9w
mov word [rcx + 2], dx
mov rdx, qword [rcx + 8]
mov rbp, qword [rsp + 0x30]
mov qword [rbp + 0x20], rdx
mov rbp, qword [rbx]
movzx edx, word [rbp]
cmp r9d, edx
mov rsi, qword [rsp + 0x78]
mov r14, qword [rsp + 0x70]
mov r15, qword [rsp + 0x68]
jle 0x140028a70
mov rdx, qword [rbp + 8]
add rbp, 8
mov rbx, rbp
mov rbp, rdx
mov rax, qword [rsp + 0x80]
mov qword [rbx], rcx
mov rdi, qword [rbp + 8]
add r9d, eax
test rdi, rdi
je 0x140028aec
lea rbx, [rbp + 8]
nop dword [rax + rax]
mov rdx, rdi
movzx edi, word [rdi]
cmp r9d, edi
jl 0x140028aec
mov rax, qword [rsp + 0x30]
mov rdi, qword [rax + 0x20]
mov qword [rbx], rdi
mov qword [rax + 0x20], rbp
lea rbx, [rdx + 8]
mov rdi, qword [rdx + 8]
mov rbp, rdx
test rdi, rdi
jne 0x140028a90
jmp 0x140028aef
mov rsi, qword [rsp + 0x78]
mov rax, qword [rsp + 0x88]
mov dword [rsi + rax + 8], 0xffffffff
mov r14, qword [rsp + 0x70]
mov r15, qword [rsp + 0x68]
mov rax, qword [rsp + 0x90]
jmp 0x140028648
mov rdx, rbp
mov qword [rcx + 8], rdx
movzx ecx, word [rdx]
cmp r9d, ecx
jle 0x140028aff
mov word [rdx], r9w
mov rax, qword [rsp + 0x88]
mov word [rsi + rax + 8], r8w
mov ecx, dword [rsp + 0x24]
mov word [rsi + rax + 0xa], cx
jmp 0x140028adf
lea r9, [0x14002c2a0]
mov r8d, 0x10
mov rcx, rsi
mov rdx, r15
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
cmp dword [rsp + 0x54], 0
jle 0x140028b68
shl r14, 4
xor eax, eax
jmp 0x140028b5c
cmp word [rsi + rax + 0xa], 0xffff
sete cl
xor cl, 1
movzx ecx, cl
mov dword [rsi + rax + 0xc], ecx
add rax, 0x10
cmp r14, rax
je 0x140028b68
cmp word [rsi + rax + 8], 0xffff
je 0x140028b40
xor ecx, ecx
jmp 0x140028b49
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r9, [0x14002c2a0]
mov r8d, 0x10
mov rcx, rsi
mov rdx, r15
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]