Function at 0x402230
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd24
cmp dword [ebp + 0x14], 4
push ebx
push esi
push edi
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x14], ecx
jl 0x402263
push str.________main_sort_initialise_..._n
call dword [sym.imp.msvcrt.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.msvcrt.dll_fprintf]
mov edx, dword [ebp - 0xc]
add esp, 8
mov esi, dword [ebp + 0xc]
mov eax, 0x10000
jmp 0x402270
dec eax
mov dword [esi + eax*4 + 4], 0
jns 0x402270
mov edi, dword [ebp + 0x10]
movzx ecx, byte [edx]
lea eax, [edi - 1]
mov edx, eax
shl ecx, 8
mov dword [ebp - 0x24], eax
cmp edx, 3
jl 0x402304
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 0xc]
add ebx, 0xfffffffc
lea ebx, [ebx + edx*2]
lea ecx, [ecx]
xor eax, eax
mov word [ebx + 4], ax
movzx eax, byte [edi + edx]
sar ecx, 8
shl eax, 8
or eax, ecx
xor ecx, ecx
inc dword [esi + eax*4]
mov word [ebx + 2], cx
movzx ecx, byte [edi + edx - 1]
shl ecx, 8
sar eax, 8
or ecx, eax
xor eax, eax
inc dword [esi + ecx*4]
mov word [ebx], ax
movzx eax, byte [edi + edx - 2]
sar ecx, 8
shl eax, 8
or eax, ecx
xor ecx, ecx
inc dword [esi + eax*4]
mov word [ebx - 2], cx
movzx ecx, byte [edi + edx - 3]
shl ecx, 8
sar eax, 8
or ecx, eax
sub edx, 4
inc dword [esi + ecx*4]
lea ebx, [ebx - 8]
cmp edx, 3
jge 0x4022a0
mov edi, dword [ebp + 0x10]
test edx, edx
js 0x40232b
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp + 8]
mov edi, edi
xor eax, eax
mov word [edi + edx*2], ax
movzx eax, byte [edx + ebx]
shl eax, 8
sar ecx, 8
or ecx, eax
inc dword [esi + ecx*4]
dec edx
jns 0x402310
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0xc]
xor ecx, ecx
lea edx, [eax + edi*2]
add edi, ebx
mov al, byte [ecx + ebx]
mov byte [edi + ecx], al
xor eax, eax
inc ecx
mov word [edx], ax
lea edx, [edx + 2]
cmp ecx, 0x22
jl 0x402338
cmp dword [ebp + 0x14], 4
mov ebx, dword [ebp - 0x14]
jl 0x40236d
push str.________bucket_sorting_..._n
call dword [sym.imp.msvcrt.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.msvcrt.dll_fprintf]
add esp, 8
lea ecx, [esi + 8]
mov edx, 0x4000
mov eax, dword [ecx - 8]
add dword [ecx - 4], eax
mov eax, dword [ecx - 4]
add dword [ecx], eax
mov eax, dword [ecx]
add dword [ecx + 4], eax
mov eax, dword [ecx + 4]
add dword [ecx + 8], eax
lea ecx, [ecx + 0x10]
dec edx
jne 0x402375
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x24]
movzx eax, byte [ecx]
shl ax, 8
movzx edx, ax
cmp edi, 3
jl 0x40247d
or ebx, 0xffffffff
sub ebx, ecx
mov dword [ebp - 8], ebx
lea eax, [ecx - 1]
add eax, edi
mov ebx, 0xfffffffe
sub ebx, ecx
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 4], eax
jmp 0x4023d0
movzx eax, byte [eax + 1]
shl ax, 8
shr dx, 8
or ax, dx
movzx edx, ax
mov eax, edx
shr dx, 8
mov ecx, dword [esi + eax*4]
dec ecx
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 4]
mov dword [ebx + ecx*4], edi
movzx eax, byte [eax]
shl ax, 8
or ax, dx
movzx edx, ax
mov eax, edx
shr dx, 8
mov ecx, dword [esi + eax*4]
dec ecx
mov dword [esi + eax*4], ecx
lea eax, [edi - 1]
mov dword [ebx + ecx*4], eax
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 0x14]
movzx eax, byte [eax - 1]
shl ax, 8
or ax, dx
movzx edx, ax
mov eax, edx
shr dx, 8
mov ecx, dword [esi + eax*4]
dec ecx
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 8]
sub edi, 4
mov dword [ebx + ecx*4], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax - 2]
shl ax, 8
or ax, dx
movzx edx, ax
mov eax, edx
mov ecx, dword [esi + eax*4]
dec ecx
mov dword [esi + eax*4], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x10]
mov esi, dword [ebp + 0xc]
mov dword [ebx + ecx*4], eax
mov eax, dword [ebp - 4]
sub eax, 4
mov dword [ebp - 4], eax
cmp edi, 3
jge 0x4023d0
mov ecx, dword [ebp - 0xc]
test edi, edi
js 0x4024a5
movzx eax, byte [edi + ecx]
shl ax, 8
shr dx, 8
or ax, dx
movzx edx, ax
mov eax, edx
mov ecx, dword [esi + eax*4]
dec ecx
mov dword [esi + eax*4], ecx
mov dword [ebx + ecx*4], edi
dec edi
mov ecx, dword [ebp - 0xc]
jns 0x402481
xor edx, edx
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x124]
rep stosd dword es:[edi], eax
jmp 0x4024c0
mov dword [ebp + edx*4 - 0x524], edx
inc edx
cmp edx, 0xff
jle 0x4024c0
mov edi, 1
lea edi, [edi + edi*2]
inc edi
cmp edi, 0x100
jle 0x4024d5
mov eax, 0x55555556
imul edi
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], eax
cmp edi, 0xff
jg 0x40259f
lea edx, [ebp - 0x524]
mov dword [ebp - 4], edx
lea esp, [esp]
mov ecx, dword [ebp + eax*4 - 0x524]
mov dword [ebp - 0x18], ecx
shl ecx, 0xa
mov ebx, dword [ecx + esi + 0x400]
sub ebx, dword [ecx + esi]
mov ecx, dword [edx]
shl ecx, 0xa
mov edx, dword [ecx + esi + 0x400]
sub edx, dword [ecx + esi]
cmp edx, ebx
jbe 0x40257a
mov esi, dword [ebp - 4]
lea edx, [edi - 1]
mov ecx, dword [esi]
mov dword [ebp + eax*4 - 0x524], ecx
lea ecx, [edi*4]
sub eax, edi
sub esi, ecx
cmp eax, edx
jle 0x402577
mov ecx, dword [esi]
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 0xc]
shl ecx, 0xa
mov edx, dword [ecx + edx + 0x400]
sub edx, dword [ecx + edi]
mov edi, dword [ebp - 8]
cmp edx, ebx
lea edx, [edi - 1]
ja 0x402540
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x524], ecx
mov eax, dword [ebp - 0x10]
inc eax
add edx, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], edx
cmp eax, 0xff
jle 0x402510
cmp edi, 1
jne 0x4024e1
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], ebx
mov edx, dword [ebp + ebx*4 - 0x524]
mov dword [ebp - 0x18], edx
xor ebx, ebx
mov edi, edi
cmp ebx, edx
je 0x40265b
mov eax, edx
shl eax, 8
add eax, ebx
mov edi, dword [esi + eax*4]
lea eax, [esi + eax*4]
mov dword [ebp - 8], eax
test edi, 0x200000
jne 0x402655
mov esi, dword [eax + 4]
and esi, 0xffdfffff
and edi, 0xffdfffff
dec esi
cmp esi, edi
jle 0x402652
cmp dword [ebp + 0x14], 4
jl 0x40261b
mov eax, esi
sub eax, edi
inc eax
push eax
push ecx
push ebx
push edx
push str.________vsort__0x_x__0x_x____gone__d___miss__d_n
call dword [sym.imp.msvcrt.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.msvcrt.dll_fprintf]
add esp, 0x18
push dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
push ecx
mov ecx, dword [ebp - 0x14]
push esi
push edi
push dword [ebp + 0x10]
push dword [ebp + 8]
call fcn.00401ec0
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
sub esi, edi
inc ecx
add ecx, esi
add esp, 0x18
cmp dword [eax], 0
mov dword [ebp - 4], ecx
jl 0x4028c9
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp + 0xc]
or dword [eax], 0x200000
inc ebx
cmp ebx, 0xff
jle 0x4025c0
lea eax, [ebp - 0x124]
add eax, edx
mov dword [ebp - 0x1c], eax
cmp byte [eax], 0
jne 0x4028d0
lea eax, [edx*4]
mov dword [ebp - 0x20], eax
lea ebx, [eax + esi]
mov dword [ebp - 8], ebx
mov edi, ebx
xor ecx, ecx
mov eax, dword [edi]
and eax, 0xffdfffff
mov dword [ebp + ecx - 0x924], eax
mov eax, dword [edi + 4]
and eax, 0xffdfffff
dec eax
mov dword [ebp + ecx - 0xd24], eax
add ecx, 4
lea edi, [edi + 0x400]
cmp ecx, 0x3fc
jle 0x402690
mov eax, dword [ebp - 0x20]
shl edx, 0xa
lea edi, [edx + esi]
mov dword [ebp - 0x18], edi
mov edx, dword [edi]
and edx, 0xffdfffff
cmp edx, dword [ebp + eax - 0x924]
jge 0x402726
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [esi + edx*4]
dec ecx
jns 0x4026ea
add ecx, ebx
mov eax, dword [ebp - 0xc]
mov al, byte [ecx + eax]
movzx edi, al
cmp byte [ebp + edi - 0x124], 0
jne 0x402710
mov eax, dword [ebp + edi*4 - 0x924]
inc eax
mov dword [esi + eax*4 - 4], ecx
mov dword [ebp + edi*4 - 0x924], eax
mov eax, dword [ebp - 0x20]
inc edx
cmp edx, dword [ebp + eax - 0x924]
jl 0x4026e2
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0x18]
mov edx, dword [edi + 0x400]
and edx, 0xffdfffff
dec edx
cmp edx, dword [ebp + eax - 0xd24]
jle 0x402786
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [esi + edx*4]
dec ecx
jns 0x40274a
add ecx, ebx
mov eax, dword [ebp - 0xc]
mov al, byte [ecx + eax]
movzx edi, al
cmp byte [ebp + edi - 0x124], 0
jne 0x402770
mov eax, dword [ebp + edi*4 - 0xd24]
dec eax
mov dword [esi + eax*4 + 4], ecx
mov dword [ebp + edi*4 - 0xd24], eax
mov eax, dword [ebp - 0x20]
dec edx
cmp edx, dword [ebp + eax - 0xd24]
jg 0x402742
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp + eax - 0x924]
mov edx, dword [ebp + eax - 0xd24]
lea eax, [ecx - 1]
cmp eax, edx
je 0x4027ac
test ecx, ecx
jne 0x4028dc
cmp edx, dword [ebp - 0x24]
jne 0x4028dc
mov eax, pe_nt_image_headers32
or dword [ebx], 0x200000
lea ebx, [ebx + 0x400]
dec eax
jne 0x4027b1
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x10]
mov byte [eax], 1
cmp ebx, 0xff
jge 0x402860
mov edx, dword [ebp - 0x18]
mov edi, dword [edi]
mov edx, dword [edx + 0x400]
and edi, 0xffdfffff
and edx, 0xffdfffff
sub edx, edi
xor ecx, ecx
cmp edx, 0xfffe
jle 0x402804
inc ecx
mov eax, edx
sar eax, cl
cmp eax, 0xfffe
jg 0x4027f8
lea eax, [edx - 1]
mov edx, eax
mov dword [ebp - 8], eax
test edx, edx
js 0x402857
lea eax, [edi + edx]
mov edi, dword [ebp - 0x14]
lea ebx, [edi + eax*4]
lea esp, [esp]
mov edi, dword [ebx]
mov esi, dword [ebp + 8]
mov eax, edx
sar eax, cl
movzx eax, ax
mov word [esi + edi*2], ax
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
cmp edi, 0x22
jge 0x402848
lea eax, [edi + esi]
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 0x1c]
mov word [esi + eax*2], di
sub ebx, 4
dec edx
jns 0x402820
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x10]
sar eax, cl
cmp eax, 0xffff
jg 0x402874
inc ebx
mov dword [ebp - 0x10], ebx
cmp ebx, 0xff
jg 0x40289e
mov ecx, dword [ebp - 4]
jmp 0x4025b2
push str.1.0.6__6_Sept_2010
push 0x3ea
push str._n_nbzip2_libbzip2:_internal_error_number__d._nThis_is_a_bug_in_bzip2_libbzip2___s._nPlease_report_it_to_me_at:_jseward_bzip.org.__If_this_happened_nwhen_you_were_using_some_program_which_uses_libbzip2_as_a_ncomponent__you_should_also_report_this_bug_to_the_author_s__nof_that_program.__Please_make_an_effort_to_report_this_bug__ntimely_and_accurate_bug_reports_eventually_lead_to_higher_nquality_software.__Thanks.__Julian_Seward__10_December_2007._n_n
call dword [sym.imp.msvcrt.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.msvcrt.dll_fprintf]
add esp, 0x10
push 3
call dword [sym.imp.msvcrt.dll_exit]
cmp dword [ebp + 0x14], 4
jl 0x4028c9
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 4]
mov eax, ecx
sub eax, edx
push eax
push edx
push ecx
push str._______d_socks___d_sorted___d_scanned_n
call dword [sym.imp.msvcrt.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.msvcrt.dll_fprintf]
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.1.0.6__6_Sept_2010
push 0x3ee
jmp 0x40287e
mov ecx, 0x3ef
call fcn.00402a70
int3