Function at 0x10012410
Capabilities:
Terminate process

Disassembly:
sub esp, 0xd2c
mov eax, dword [0x10052084]
xor eax, esp
mov dword [esp + 0xd28], eax
cmp dword [esp + 0xd40], 4
mov eax, dword [esp + 0xd30]
push ebx
push ebp
mov ebp, dword [esp + 0xd40]
push esi
mov esi, dword [esp + 0xd40]
push edi
mov edi, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], ecx
jl 0x1001246f
push str.________main_sort_initialise_..._n
call fcn.1002f561
add eax, 0x40
push eax
call fcn.1002f702
add esp, 8
mov eax, 0x10000
xor edx, edx
sub eax, 1
mov dword [ebp + eax*4 + 4], edx
jns 0x10012476
mov eax, dword [esp + 0xd4c]
xor ecx, ecx
mov ch, byte [edi]
add eax, 0xffffffff
cmp eax, 3
jl 0x100124f0
lea esi, [esi + eax*2 - 4]
xor ebx, ebx
mov word [esi + 4], dx
mov bh, byte [edi + eax]
sar ecx, 8
sub eax, 4
sub esi, 8
or ecx, ebx
add dword [ebp + ecx*4], 1
xor ebx, ebx
mov word [esi + 0xa], dx
mov bh, byte [edi + eax + 3]
sar ecx, 8
or ecx, ebx
add dword [ebp + ecx*4], 1
xor ebx, ebx
mov word [esi + 8], dx
mov bh, byte [edi + eax + 2]
sar ecx, 8
or ecx, ebx
add dword [ebp + ecx*4], 1
xor ebx, ebx
mov word [esi + 6], dx
mov bh, byte [edi + eax + 1]
sar ecx, 8
or ecx, ebx
add dword [ebp + ecx*4], 1
cmp eax, 3
jge 0x10012496
cmp eax, edx
jl 0x10012510
mov esi, dword [esp + 0x24]
xor ebx, ebx
mov word [esi + eax*2], dx
mov bh, byte [edi + eax]
sar ecx, 8
or ecx, ebx
add dword [ebp + ecx*4], 1
sub eax, 1
jns 0x100124f4
mov esi, dword [esp + 0xd4c]
mov ecx, dword [esp + 0x24]
xor eax, eax
lea ecx, [ecx + esi*2]
add esi, edi
mov bl, byte [edi + eax]
mov byte [esi + eax], bl
mov word [ecx], dx
add eax, 1
add ecx, 2
cmp eax, 0x22
jl 0x10012522
cmp dword [esp + 0xd50], 4
jl 0x10012556
push str.________bucket_sorting_..._n
call fcn.1002f561
add eax, 0x40
push eax
call fcn.1002f702
add esp, 8
lea eax, [ebp + 8]
mov edx, 0x4000
mov edi, edi
mov ecx, dword [eax - 8]
add dword [eax - 4], ecx
mov ecx, dword [eax - 4]
add dword [eax], ecx
mov ecx, dword [eax]
add dword [eax + 4], ecx
mov ecx, dword [eax + 4]
add dword [eax + 8], ecx
add eax, 0x10
sub edx, 1
jne 0x10012560
mov dh, byte [edi]
mov edi, dword [esp + 0xd4c]
add edi, 0xffffffff
cmp edi, 3
movzx edx, dx
jl 0x1001263f
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
or esi, 0xffffffff
sub esi, ecx
mov dword [esp + 0x10], esi
mov esi, 0xfffffffe
sub esi, ecx
lea eax, [ecx + edi - 1]
mov dword [esp + 0x14], esi
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, dh
movzx edx, cx
movzx ecx, dx
lea esi, [ebp + ecx*4]
mov ecx, dword [esi]
sub ecx, 1
mov dword [esi], ecx
mov dword [ebx + ecx*4], edi
xor ecx, ecx
mov ch, byte [eax]
mov cl, dh
movzx edx, cx
movzx ecx, dx
lea esi, [ebp + ecx*4]
mov ecx, dword [esi]
sub ecx, 1
mov dword [esi], ecx
lea esi, [edi - 1]
mov dword [ebx + ecx*4], esi
xor ecx, ecx
mov ch, byte [eax - 1]
sub edi, 4
mov cl, dh
movzx edx, cx
movzx ecx, dx
lea esi, [ebp + ecx*4]
mov ecx, dword [esi]
sub ecx, 1
mov dword [esi], ecx
mov esi, dword [esp + 0x10]
add esi, eax
mov dword [ebx + ecx*4], esi
xor ecx, ecx
mov ch, byte [eax - 2]
mov cl, dh
movzx edx, cx
movzx ecx, dx
lea esi, [ebp + ecx*4]
mov ecx, dword [esi]
sub ecx, 1
mov dword [esi], ecx
mov esi, dword [esp + 0x14]
add esi, eax
sub eax, 4
cmp edi, 3
mov dword [ebx + ecx*4], esi
jge 0x100125b6
test edi, edi
jl 0x10012672
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
jmp 0x10012650
xor eax, eax
mov ah, byte [ebx + edi]
mov al, dh
movzx edx, ax
movzx ecx, dx
mov eax, dword [ebp + ecx*4]
lea ecx, [ebp + ecx*4]
sub eax, 1
mov dword [ecx], eax
mov dword [esi + eax*4], edi
sub edi, 1
jns 0x10012650
push pe_nt_image_headers32
xor esi, esi
lea edx, [esp + 0xc3c]
push esi
push edx
call fcn.1002fe50
add esp, 0xc
lea ebx, [ebx]
mov dword [esp + esi*4 + 0x38], esi
add esi, 1
cmp esi, 0xff
jle 0x10012690
mov esi, 1
lea esi, [esi + esi*2 + 1]
cmp esi, 0x100
jle 0x100126a4
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, eax
cmp esi, 0xff
mov dword [esp + 0x18], eax
jg 0x10012766
lea edi, [esp + 0x38]
mov dword [esp + 0x1c], edi
jmp 0x100126e0
mov ecx, dword [esp + eax*4 + 0x38]
mov dword [esp + 0x10], ecx
shl ecx, 0xa
mov edx, dword [ecx + ebp + 0x400]
sub edx, dword [ecx + ebp]
add ecx, ebp
mov ecx, dword [edi]
shl ecx, 0xa
mov ebx, dword [ecx + ebp + 0x400]
sub ebx, dword [ecx + ebp]
add ecx, ebp
cmp ebx, edx
jbe 0x1001273d
mov ecx, edi
mov edi, edi
mov edi, dword [ecx]
mov dword [esp + eax*4 + 0x38], edi
lea edi, [esi*4]
sub ecx, edi
sub eax, esi
lea edi, [esi - 1]
cmp eax, edi
jle 0x1001273d
mov edi, dword [ecx]
shl edi, 0xa
mov ebx, dword [edi + ebp + 0x400]
sub ebx, dword [edi + ebp]
add edi, ebp
cmp ebx, edx
ja 0x10012710
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x38], edx
mov eax, dword [esp + 0x18]
add eax, 1
add edi, 4
cmp eax, 0xff
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edi
jle 0x100126e0
cmp esi, 1
jne 0x100126b0
mov ebx, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
lea ecx, [ecx]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + eax*4 + 0x38]
xor edx, edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x14], edx
cmp edx, esi
je 0x10012857
mov eax, esi
shl eax, 8
add eax, edx
mov ecx, dword [ebp + eax*4]
test ecx, 0x200000
mov dword [esp + 0x10], eax
jne 0x1001284b
mov edi, dword [ebp + eax*4 + 4]
and ecx, 0xffdfffff
and edi, 0xffdfffff
mov ebx, ecx
sub edi, 1
cmp edi, ebx
jle 0x1001284b
cmp dword [esp + 0xd50], 4
jl 0x100127fd
mov eax, dword [esp + 0x1c]
mov ecx, edi
sub ecx, ebx
add ecx, 1
push ecx
push eax
push edx
push esi
push str.________qsort__0x_x__0x_x____done__d___this__d_n
call fcn.1002f561
add eax, 0x40
push eax
call fcn.1002f702
add esp, 0x18
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xd4c]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ecx
mov ecx, edi
mov eax, ebx
call fcn.10011ff0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
sub edi, ebx
add esp, 0x10
cmp dword [ecx], 0
lea eax, [edx + edi + 1]
mov dword [esp + 0x1c], eax
jl 0x10012aba
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
or dword [ebp + eax*4], 0x200000
mov ebx, dword [esp + 0x20]
add edx, 1
cmp edx, 0xff
mov dword [esp + 0x14], edx
jle 0x10012792
cmp byte [esp + esi + 0xc38], 0
lea eax, [esp + esi + 0xc38]
mov dword [esp + 0x30], eax
jne 0x10012ad3
lea ecx, [ebp + esi*4]
mov dword [esp + 0x2c], ecx
xor eax, eax
lea ecx, [ecx]
mov edx, dword [ecx]
and edx, 0xffdfffff
mov dword [esp + eax + 0x838], edx
mov edx, dword [ecx + 4]
and edx, 0xffdfffff
sub edx, 1
mov dword [esp + eax + 0x438], edx
add eax, 4
add ecx, 0x400
cmp eax, 0x3fc
jle 0x10012890
mov eax, esi
shl eax, 0xa
mov ecx, dword [eax + ebp]
add eax, ebp
lea edx, [esp + esi*4 + 0x838]
and ecx, 0xffdfffff
cmp ecx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jge 0x1001292b
mov eax, dword [ebx + ecx*4]
sub eax, 1
jns 0x100128f4
add eax, dword [esp + 0xd4c]
mov edx, dword [esp + 0x28]
movzx edx, byte [edx + eax]
cmp byte [esp + edx + 0xc38], 0
jne 0x1001291c
mov edi, dword [esp + edx*4 + 0x838]
lea edx, [esp + edx*4 + 0x838]
mov dword [ebx + edi*4], eax
add edi, 1
mov dword [edx], edi
mov edx, dword [esp + 0x14]
add ecx, 1
cmp ecx, dword [edx]
jl 0x100128e5
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x400]
and ecx, 0xffdfffff
sub ecx, 1
cmp ecx, dword [esp + esi*4 + 0x438]
lea esi, [esp + esi*4 + 0x438]
jle 0x10012992
lea ebx, [ebx]
mov eax, dword [ebx + ecx*4]
sub eax, 1
jns 0x1001295f
add eax, dword [esp + 0xd4c]
mov edx, dword [esp + 0x28]
movzx edx, byte [edx + eax]
cmp byte [esp + edx + 0xc38], 0
jne 0x10012987
mov edi, dword [esp + edx*4 + 0x438]
lea edx, [esp + edx*4 + 0x438]
mov dword [ebx + edi*4], eax
add edi, 0xffffffff
mov dword [edx], edi
sub ecx, 1
cmp ecx, dword [esi]
jg 0x10012950
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov ecx, dword [esi]
lea edx, [eax - 1]
cmp edx, ecx
je 0x100129b7
test eax, eax
jne 0x10012afa
mov eax, dword [esp + 0xd4c]
add eax, 0xffffffff
cmp ecx, eax
jne 0x10012afa
mov eax, dword [esp + 0x2c]
mov ecx, pe_nt_image_headers32
or dword [eax], 0x200000
add eax, 0x400
sub ecx, 1
jne 0x100129c0
cmp dword [esp + 0x18], 0xff
mov eax, dword [esp + 0x30]
mov byte [eax], 1
jge 0x10012a72
mov eax, dword [esp + 0x10]
mov edi, dword [eax]
mov eax, dword [eax + 0x400]
and edi, 0xffdfffff
and eax, 0xffdfffff
sub eax, edi
cmp eax, 0xfffe
jle 0x10012a14
add ecx, 1
mov edx, eax
sar edx, cl
cmp edx, 0xfffe
jg 0x10012a05
add eax, 0xffffffff
mov dword [esp + 0x30], eax
mov edx, eax
js 0x10012a61
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
add edi, edx
lea ebx, [eax + edi*4]
lea esp, [esp]
mov eax, dword [ebx]
mov edi, edx
sar edi, cl
cmp eax, 0x22
movzx edi, di
mov word [esi + eax*2], di
jge 0x10012a53
mov esi, dword [esp + 0xd4c]
add eax, esi
mov esi, dword [esp + 0x24]
mov word [esi + eax*2], di
sub edx, 1
sub ebx, 4
test edx, edx
jge 0x10012a30
mov eax, dword [esp + 0x30]
sar eax, cl
cmp eax, 0xffff
jg 0x10012b04
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, 0xff
mov dword [esp + 0x18], eax
jle 0x10012780
cmp dword [esp + 0xd50], 4
jl 0x10012aba
mov ecx, dword [esp + 0xd4c]
mov eax, dword [esp + 0x1c]
mov edx, ecx
sub edx, eax
push edx
push eax
push ecx
push str._________d_pointers___d_sorted___d_scanned_n
call fcn.1002f561
add eax, 0x40
push eax
call fcn.1002f702
add esp, 0x14
mov ecx, dword [esp + 0xd38]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1002b34a
add esp, 0xd2c
ret
push str.1.0.4__20_Dec_2006
push 0x3ee
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__15_February_2005._n_n
call fcn.1002f561
add eax, 0x40
push eax
call fcn.1002f702
add esp, 0x10
push 3
call fcn.1002fae1
mov esi, 0x3ef
jmp 0x10012c80
push str.1.0.4__20_Dec_2006
push 0x3ea
jmp 0x10012add
push str.1.0.4__20_Dec_2006
push esi
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__15_February_2005._n_n
call fcn.1002f561
add eax, 0x40
push eax
call fcn.1002f702
add esp, 0x10
cmp esi, 0x3ef
jne 0x10012cba
push str._n_A_special_note_about_internal_error_number_1007__n_nExperience_suggests_that_a_common_cause_of_i.e._1007_nis_unreliable_memory_or_other_hardware.__The_1007_assertion_njust_happens_to_cross_check_the_results_of_huge_numbers_of_nmemory_reads_writes__and_so_acts__unintendedly__as_a_stress_ntest_of_your_memory_system._n_nI_suggest_the_following:_try_compressing_the_file_again__npossibly_monitoring_progress_in_detail_with_the__vv_flag._n_n_If_the_error_cannot_be_reproduced__and_or_happens_at_different_n__points_in_compression__you_may_have_a_flaky_memory_system._n__Try_a_memory_test_program.__I_have_used_Memtest86_n___www.memtest86.com_.__At_the_time_of_writing_it_is_free__GPLd_._n__Memtest86_tests_memory_much_more_thorougly_than_your_BIOSs_n__power_on_test__and_may_find_failures_that_the_BIOS_doesnt._n_n_If_the_error_can_be_repeatably_reproduced__this_is_a_bug_in_n__bzip2__and_I_would_very_much_like_to_hear_about_it.__Please_n__let_me_know__and__ideally__save_a_copy_of_the_file_causing_the_n__problem____without_which_I_will_be_unable_to_investigate_it._n_n
call fcn.1002f561
add eax, 0x40
push eax
call fcn.1002f702
add esp, 8
push 3
call fcn.1002fae1
int3