Function at 0x180029044
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x830
mov r15d, dword [rsp + 0x890]
movsxd rbp, r9d
mov rsi, r8
mov rdi, rdx
mov r12, rcx
cmp r15d, 4
jl 0x180029097
mov rcx, qword [sym.imp.msvcrt.dll__iob]
lea rdx, str.________bucket_sorting_..._n
add rcx, 0x60
call qword [sym.imp.msvcrt.dll_fprintf]
lea rcx, [rsp + 0x20]
xor edx, edx
mov r8d, 0x404
call sub.msvcrt.dll_memset
mov r13d, 1
test ebp, ebp
jle 0x1800290c9
mov rcx, rdi
mov rdx, rbp
movzx eax, byte [rcx]
add rcx, r13
add dword [rsp + rax*4 + 0x20], r13d
sub rdx, r13
jne 0x1800290b9
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x430]
mov r8d, 0x400
call sub.msvcrt.dll_memcpy
mov r11, r13
mov eax, dword [rsp + r11*4 + 0x1c]
add dword [rsp + r11*4 + 0x20], eax
add r11, r13
cmp r11, 0x101
jl 0x1800290e4
xor edx, edx
test ebp, ebp
jle 0x180029124
mov r8, rdi
movzx eax, byte [r8]
add r8, r13
mov ecx, eax
mov eax, dword [rsp + rax*4 + 0x20]
sub eax, r13d
mov dword [rsp + rcx*4 + 0x20], eax
cdqe
mov dword [r12 + rax*4], edx
add edx, r13d
cmp edx, ebp
jl 0x180029103
mov eax, ebp
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add eax, 2
movsxd r8, eax
test eax, eax
jle 0x180029147
shl r8, 2
xor edx, edx
mov rcx, rsi
call sub.msvcrt.dll_memset
lea r8, [rsp + 0x20]
mov r9d, 0x100
movsxd rcx, dword [r8]
mov eax, r13d
add r8, 4
mov rdx, rcx
and ecx, 0x1f
sar rdx, 5
shl eax, cl
or dword [rsi + rdx*4], eax
sub r9, r13
jne 0x180029152
lea eax, [rbp + 1]
mov r10d, ebp
mov r11, rbp
movsxd r9, eax
mov ebx, 0x20
sub r9, rbp
mov ecx, r10d
mov r8, r11
mov edx, r13d
and ecx, 0x1f
sar r8, 5
shl edx, cl
lea ecx, [r10 + 1]
add r10d, 2
or dword [rsi + r8*4], edx
and ecx, 0x1f
lea r8, [r9 + r11]
sar r8, 5
mov edx, r13d
add r11, 2
shl edx, cl
not edx
and dword [rsi + r8*4], edx
sub rbx, r13
jne 0x180029184
jmp 0x1800291d3
mov rdi, qword [rsp + 0x878]
mov r12, qword [rsp + 0x870]
cmp r15d, 4
jl 0x1800291f4
mov rcx, qword [sym.imp.msvcrt.dll__iob]
lea rdx, str.________depth__6d_has
mov r8d, r13d
add rcx, 0x60
call qword [sym.imp.msvcrt.dll_fprintf]
xor r11d, r11d
xor r8d, r8d
test ebp, ebp
jle 0x18002923a
xor r9d, r9d
mov r10, r12
mov rax, r9
mov edx, r8d
sar rax, 5
and edx, 0x1f
mov ecx, dword [rsi + rax*4]
mov eax, dword [r10]
bt ecx, edx
cmovb r11d, r8d
sub eax, r13d
jns 0x180029225
add eax, ebp
cdqe
inc r8d
inc r9
add r10, 4
mov dword [rdi + rax*4], r11d
cmp r8d, ebp
jl 0x180029204
mov r15, qword [rsp + 0x878]
mov r14, qword [rsp + 0x870]
xor r12d, r12d
or ebx, 0xffffffff
lea edx, [rbx + 1]
jmp 0x18002925b
test ecx, ecx
je 0x18002926f
inc edx
movsxd rax, edx
mov ecx, edx
sar rax, 5
and ecx, 0x1f
mov eax, dword [rsi + rax*4]
bt eax, ecx
jb 0x180029255
movsxd rax, edx
sar rax, 5
mov r8d, dword [rsi + rax*4]
mov eax, edx
and eax, 0x1f
bt r8d, eax
jae 0x1800292b4
or ecx, 0xffffffff
cmp r8d, ecx
jne 0x1800292a0
add edx, 0x20
movsxd rax, edx
sar rax, 5
cmp dword [rsi + rax*4], ecx
je 0x18002928d
jmp 0x1800292a0
inc edx
movsxd rax, edx
mov ecx, edx
sar rax, 5
and ecx, 0x1f
mov eax, dword [rsi + rax*4]
bt eax, ecx
jb 0x18002929e
lea edi, [rdx - 1]
cmp edi, ebp
jl 0x18002938f
mov r15d, dword [rsp + 0x890]
cmp r15d, 4
jl 0x1800292e8
mov rcx, qword [sym.imp.msvcrt.dll__iob]
lea rdx, str._6d_unresolved_strings_n
mov r8d, r12d
add rcx, 0x60
call qword [sym.imp.msvcrt.dll_fprintf]
add r13d, r13d
cmp r13d, ebp
jg 0x1800292f9
test r12d, r12d
jne 0x1800291c3
mov r14, rbp
cmp r15d, 4
jl 0x18002931a
mov rcx, qword [sym.imp.msvcrt.dll__iob]
lea rdx, str.________reconstructing_block_..._n
add rcx, 0x60
call qword [sym.imp.msvcrt.dll_fprintf]
xor ecx, ecx
xor r8d, r8d
test r14, r14
jle 0x18002945e
mov r9, qword [rsp + 0x878]
lea rdx, [rsp + 0x430]
cmp dword [rdx], 0
jne 0x18002934c
inc ecx
movsxd rax, ecx
cmp dword [rsp + rax*4 + 0x430], 0
je 0x18002933d
movsxd rax, ecx
lea rdx, [rsp + rax*4 + 0x430]
mov rax, qword [rsp + 0x870]
mov eax, dword [rax + r8*4]
dec dword [rdx]
inc r8
mov byte [rax + r9], cl
cmp r8, r14
jl 0x180029338
cmp ecx, 0x100
jl 0x18002945e
mov ecx, 3
call qword [sym.imp.msvcrt.dll_exit]
int3
test ecx, ecx
je 0x1800293a3
inc edx
movsxd rax, edx
mov ecx, edx
sar rax, 5
and ecx, 0x1f
mov eax, dword [rsi + rax*4]
bt eax, ecx
jae 0x180029389
movsxd rax, edx
sar rax, 5
mov r8d, dword [rsi + rax*4]
mov eax, edx
and eax, 0x1f
bt r8d, eax
jb 0x1800293e6
test r8d, r8d
jne 0x1800293d2
add edx, 0x20
movsxd rax, edx
sar rax, 5
cmp dword [rsi + rax*4], 0
je 0x1800293be
jmp 0x1800293d2
inc edx
movsxd rax, edx
mov ecx, edx
sar rax, 5
and ecx, 0x1f
mov eax, dword [rsi + rax*4]
bt eax, ecx
jae 0x1800293d0
lea ebx, [rdx - 1]
cmp ebx, ebp
jge 0x1800292bf
cmp ebx, edi
jle 0x180029250
mov eax, ebx
mov r9d, ebx
mov r8d, edi
sub eax, edi
mov rdx, r15
mov rcx, r14
lea r12d, [r12 + rax + 1]
call fcn.180028d1c
or r8d, 0xffffffff
movsxd r10, edi
cmp edi, ebx
jg 0x180029250
lea r9, [r14 + r10*4]
mov eax, dword [r9]
mov r11d, dword [r15 + rax*4]
cmp r8d, r11d
je 0x18002944c
mov ecx, edi
mov r8, r10
mov edx, 1
and ecx, 0x1f
sar r8, 5
shl edx, cl
or dword [rsi + r8*4], edx
mov r8d, r11d
inc edi
inc r10
add r9, 4
cmp edi, ebx
jle 0x180029426
jmp 0x180029250
mov rbx, qword [rsp + 0x888]
add rsp, 0x830
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret