Function at 0x6fba1140
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
mov edi, edx
push esi
push ebx
sub esp, 0xb9c
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xbb0]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xbb4]
cmp eax, 3
mov dword [esp + 0x5c], eax
jle 0x6fba1197
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
mov dword [esp], str.________bucket_sorting_..._n
mov dword [esp + 0xc], eax
call sub.cygwin1.dll_fwrite
lea ebx, [esp + 0x78c]
lea ecx, [esp + 0xb90]
mov eax, ebx
mov dword [eax], 0
add eax, 4
cmp eax, ecx
jne 0x6fba11a7
mov edx, dword [esp + 0x44]
mov eax, edi
test edx, edx
lea esi, [edi + edx]
jle 0x6fba11d3
movzx edx, byte [eax]
add eax, 1
add dword [esp + edx*4 + 0x78c], 1
cmp esi, eax
jne 0x6fba11c1
xor eax, eax
mov edx, dword [esp + eax*4 + 0x78c]
mov dword [esp + eax*4 + 0x38c], edx
add eax, 1
cmp eax, 0x100
jne 0x6fba11d5
lea eax, [esp + 0x790]
mov edx, dword [eax - 4]
add dword [eax], edx
add eax, 4
cmp eax, ecx
jne 0x6fba11f4
mov esi, dword [esp + 0x44]
xor eax, eax
test esi, esi
jle 0x6fba122f
movzx ecx, byte [edi + eax]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + ecx*4 + 0x78c]
sub edx, 1
mov dword [esi + edx*4], eax
add eax, 1
cmp dword [esp + 0x44], eax
mov dword [esp + ecx*4 + 0x78c], edx
jne 0x6fba120a
mov edx, dword [esp + 0x44]
mov eax, edx
add eax, 0x1f
test edx, edx
cmovns eax, edx
xor edx, edx
sar eax, 5
cmp eax, 0xffffffff
lea ecx, [eax + 2]
jl 0x6fba125c
mov eax, dword [esp + 0x40]
mov dword [eax + edx*4], 0
add edx, 1
cmp edx, ecx
jne 0x6fba124a
mov edx, dword [esp + 0x40]
lea esi, [esp + 0xb8c]
mov ebp, 1
mov dword [esp + 0x14], edi
mov ecx, dword [ebx]
mov edi, ebp
add ebx, 4
mov eax, ecx
shl edi, cl
sar eax, 5
or dword [edx + eax*4], edi
cmp ebx, esi
jne 0x6fba1270
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov ebx, 1
mov edi, dword [esp + 0x14]
lea esi, [eax + 0x40]
mov dword [esp + 0x14], esi
mov ecx, eax
mov ebp, eax
mov esi, ebx
shl esi, cl
sar ebp, 5
lea ecx, [eax + 1]
or dword [edx + ebp*4], esi
mov esi, ebx
add eax, 2
mov ebp, ecx
shl esi, cl
sar ebp, 5
mov ecx, esi
not ecx
and dword [edx + ebp*4], ecx
cmp eax, dword [esp + 0x14]
jne 0x6fba129d
mov dword [esp + 0x4c], 1
cmp dword [esp + 0x5c], 3
jle 0x6fba12f6
call sub.cygwin1.dll___getreent
mov ebx, dword [esp + 0x4c]
mov dword [esp + 4], str.________depth__6d_has
mov dword [esp + 8], ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov ebx, dword [esp + 0x44]
xor edx, edx
xor ecx, ecx
test ebx, ebx
jle 0x6fba1341
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x40]
mov eax, ecx
mov ebp, 1
sar eax, 5
shl ebp, cl
test dword [esi + eax*4], ebp
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ecx*4]
cmovne edx, ecx
sub eax, dword [esp + 0x4c]
lea ebp, [eax + ebx]
test eax, eax
cmovs eax, ebp
add ecx, 1
cmp ebx, ecx
mov dword [edi + eax*4], edx
jne 0x6fba130e
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], 0xffffffff
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x40]
mov edx, 1
add eax, 1
mov ebx, eax
mov dword [esp + 0x34], eax
sar eax, 5
mov eax, dword [esi + eax*4]
mov ecx, ebx
and ecx, 0x1f
shl edx, cl
test edx, eax
je 0x6fba13ab
test ecx, ecx
je 0x6fba1889
mov edx, ebx
jmp 0x6fba138c
test ecx, ecx
je 0x6fba1885
add edx, 1
mov ebx, 1
mov eax, edx
mov ecx, edx
sar eax, 5
and ecx, 0x1f
mov eax, dword [esi + eax*4]
shl ebx, cl
test ebx, eax
jne 0x6fba1384
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
sub eax, 1
cmp dword [esp + 0x44], eax
mov dword [esp + 0x54], eax
jle 0x6fba196f
test byte [esp + 0x34], 0x1f
je 0x6fba1a40
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
jmp 0x6fba13dd
test ecx, ecx
je 0x6fba18ed
add edx, 1
mov ebx, 1
mov eax, edx
mov ecx, edx
sar eax, 5
and ecx, 0x1f
mov eax, dword [esi + eax*4]
shl ebx, cl
test ebx, eax
je 0x6fba13d5
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
sub eax, 1
cmp dword [esp + 0x44], eax
mov dword [esp + 0x50], eax
jle 0x6fba196f
mov ebx, dword [esp + 0x54]
cmp eax, ebx
jle 0x6fba1351
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
mov ebx, eax
mov dword [esp + 0x1fc], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x48], 0
mov dword [esp + 0x3c], 1
sub eax, edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x2c], edx
lea eax, [esi + eax + 1]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x3c]
sub eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
cmp eax, 9
jle 0x6fba1742
imul eax, dword [esp + 0x48], 0x1dc5
add eax, 1
and eax, 0x7fff
mov ebx, eax
mov dword [esp + 0x48], eax
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
lea eax, [edx + edx*2]
mov edx, ebx
sub edx, eax
jne 0x6fba1726
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
mov eax, dword [eax + ebx*4]
mov ebp, dword [edi + eax*4]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], ebp
lea ebx, [eax + 1]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
jmp 0x6fba1502
mov ebp, dword [esp + 0x1c]
mov edx, dword [ebp + ebx*4 - 4]
mov eax, dword [edi + edx*4]
sub eax, dword [esp + 0x18]
cmp eax, 0
jne 0x6fba1640
mov esi, dword [esp + 0x28]
add dword [esp + 0x28], 1
lea eax, [ebp + esi*4]
mov esi, dword [eax]
mov dword [ebp + ebx*4 - 4], esi
mov dword [eax], edx
add dword [esp + 0x20], 1
mov ebx, dword [esp + 0x20]
mov eax, ebx
sub eax, 1
cmp ecx, eax
mov dword [esp + 0x14], eax
jge 0x6fba14d0
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x28], ebx
jg 0x6fba16e0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov edx, esi
sub edx, eax
sub eax, dword [esp + 0x2c]
cmp edx, eax
cmovg edx, eax
sub esi, edx
test edx, edx
mov dword [esp + 0x18], esi
jle 0x6fba1575
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
add edx, ebp
lea eax, [esi + ebp*4]
lea ebp, [esi + edx*4]
mov esi, dword [esp + 0x18]
sub esi, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov edx, esi
nop
mov esi, dword [eax]
mov ecx, dword [eax + edx*4]
mov dword [eax], ecx
mov dword [eax + edx*4], esi
add eax, 4
cmp eax, ebp
jne 0x6fba1560
mov ecx, dword [esp + 0x18]
mov esi, ebx
sub esi, ecx
mov ecx, dword [esp + 0x30]
mov edx, ecx
sub edx, ebx
cmp edx, esi
cmovg edx, esi
sub ecx, edx
test edx, edx
jle 0x6fba15b7
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
lea eax, [ebx + ebp*4]
mov ebx, dword [esp + 0x1c]
add edx, ebp
lea ebx, [ebx + edx*4]
mov edx, ecx
sub edx, ebp
mov ecx, dword [eax]
mov ebp, dword [eax + edx*4 + 4]
mov dword [eax], ebp
mov dword [eax + edx*4 + 4], ecx
add eax, 4
cmp eax, ebx
jne 0x6fba15a4
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
add eax, ebx
sub eax, dword [esp + 0x28]
mov edx, ecx
sub edx, esi
add edx, 1
sub eax, 1
sub ecx, edx
mov ebp, eax
sub ebp, ebx
cmp ebp, ecx
jle 0x6fba185e
mov ebx, dword [esp + 0x38]
mov dword [esp + ebx*4 + 0x1fc], eax
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x30]
mov dword [esp + eax*4 + 0x6c], edx
mov dword [esp + eax*4 + 0x1fc], ebx
add eax, 1
mov dword [esp + 0x38], eax
cmp dword [esp + 0x38], 0x62
jg 0x6fba184d
mov ebx, dword [esp + 0x38]
mov eax, ebx
mov dword [esp + 0x3c], ebx
sub eax, 1
mov edx, dword [esp + eax*4 + 0x6c]
mov eax, dword [esp + eax*4 + 0x1fc]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
jmp 0x6fba1454
jle 0x6fba14fd
mov eax, dword [esp + 0x1c]
lea edx, [ecx - 1]
mov ebx, dword [esp + 0x24]
lea eax, [eax + ecx*4]
jmp 0x6fba1682
mov esi, dword [esp + 0x1c]
lea esi, [esi + ebx*4]
sub ebx, 1
mov ebp, dword [esi]
mov dword [eax], ebp
mov dword [esi], ecx
mov ecx, edx
sub eax, 4
sub edx, 1
cmp ecx, dword [esp + 0x14]
jl 0x6fba1517
mov ecx, dword [eax]
mov esi, dword [esp + 0x18]
cmp dword [edi + ecx*4], esi
je 0x6fba1660
js 0x6fba1693
mov ecx, edx
jmp 0x6fba1672
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + ebp*4 - 4]
mov dword [ebx + ebp*4 - 4], ecx
mov ecx, edx
mov dword [eax], esi
jmp 0x6fba14fd
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
sub esi, 4
sub dword [esp + 0x14], 1
mov dword [eax + edx*4 - 4], ebx
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x2c]
jne 0x6fba1800
lea esi, [esi]
lea edi, [edi]
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x6fba1606
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
mov edx, 0xffffffff
mov ebx, dword [esp + 0x40]
mov eax, dword [esi + ecx*4]
mov eax, dword [edi + eax*4]
cmp eax, edx
je 0x6fba1716
mov edx, ecx
mov ebp, 1
sar edx, 5
shl ebp, cl
or dword [ebx + edx*4], ebp
add ecx, 1
cmp dword [esp + 0x34], ecx
mov edx, eax
jne 0x6fba16fd
jmp 0x6fba1351
cmp edx, 1
je 0x6fba194d
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x30]
mov eax, dword [eax + ebx*4]
mov ebp, dword [edi + eax*4]
jmp 0x6fba14aa
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x2c], edx
je 0x6fba16e0
cmp eax, 3
jle 0x6fba17d5
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov eax, ebx
sub eax, 4
cmp eax, edx
jl 0x6fba17d5
mov esi, dword [esp + 0x1c]
mov ebp, ebx
lea esi, [esi + eax*4]
mov eax, ebx
lea ebx, [edx + 3]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
lea esi, [esi]
mov eax, dword [esi]
mov dword [esp + 0x18], eax
mov ebx, dword [edi + eax*4]
mov eax, dword [esp + 0x14]
cmp eax, ebp
mov edx, eax
jg 0x6fba17b7
mov ecx, dword [esi + 0x10]
cmp dword [edi + ecx*4], ebx
jae 0x6fba1966
mov eax, esi
jmp 0x6fba17ae
mov ecx, dword [eax + 0x20]
add eax, 0x10
cmp ebx, dword [edi + ecx*4]
jbe 0x6fba17b7
add edx, 4
mov dword [eax], ecx
cmp edx, ebp
jle 0x6fba17a3
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
sub esi, 4
sub dword [esp + 0x14], 1
mov dword [eax + edx*4 - 0x10], ebx
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x20]
jne 0x6fba1780
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
mov eax, ebp
sub eax, 1
cmp eax, dword [esp + 0x2c]
lea esi, [ebx + eax*4]
jl 0x6fba16e0
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x30]
mov esi, esi
lea edi, [edi]
mov eax, dword [esi]
mov dword [esp + 0x18], eax
mov ebx, dword [edi + eax*4]
mov eax, dword [esp + 0x14]
cmp eax, ebp
mov edx, eax
jg 0x6fba16b4
mov ecx, dword [esi + 4]
cmp ebx, dword [edi + ecx*4]
jbe 0x6fba16b0
mov eax, esi
jmp 0x6fba183f
mov ecx, dword [eax + 8]
add eax, 4
cmp ebx, dword [edi + ecx*4]
jbe 0x6fba16b4
add edx, 1
mov dword [eax], ecx
cmp edx, ebp
jle 0x6fba1830
jmp 0x6fba16b4
mov dword [esp], 0x3ec
call sym.cygbz2_1.dll_BZ2_bz__AssertH__fail
jmp 0x6fba1611
mov ebx, dword [esp + 0x38]
mov dword [esp + ebx*4 + 0x6c], edx
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov dword [esp + ebx*4 + 0x1fc], eax
lea eax, [ebx + 1]
mov dword [esp + ebx*4 + 0x6c], edx
mov dword [esp + 0x38], eax
jmp 0x6fba1606
mov dword [esp + 0x34], edx
cmp eax, 0xffffffff
jne 0x6fba18b4
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
lea esi, [esi]
lea edi, [edi]
add edx, 0x20
mov eax, edx
sar eax, 5
mov eax, dword [ecx + eax*4]
cmp eax, 0xffffffff
je 0x6fba18a0
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0x34]
mov edx, 1
shl edx, cl
test edx, eax
je 0x6fba13ab
mov ebx, dword [esp + 0x40]
nop
lea esi, [esi]
add ecx, 1
mov edx, 1
mov eax, ecx
shl edx, cl
sar eax, 5
test dword [ebx + eax*4], edx
jne 0x6fba18d0
mov dword [esp + 0x34], ecx
jmp 0x6fba13ab
mov dword [esp + 0x34], edx
test eax, eax
jne 0x6fba1913
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
lea esi, [esi]
add edx, 0x20
mov eax, edx
sar eax, 5
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x6fba1900
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0x34]
mov edx, 1
shl edx, cl
test edx, eax
jne 0x6fba13fc
mov ebx, dword [esp + 0x40]
lea esi, [esi]
add ecx, 1
mov edx, 1
mov eax, ecx
shl edx, cl
sar eax, 5
test dword [ebx + eax*4], edx
je 0x6fba1930
mov dword [esp + 0x34], ecx
jmp 0x6fba13fc
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
sar eax, 1
mov eax, dword [ebx + eax*4]
mov ebp, dword [edi + eax*4]
jmp 0x6fba14aa
mov edx, dword [esp + 0x14]
jmp 0x6fba17b7
cmp dword [esp + 0x5c], 3
jle 0x6fba1996
call sub.cygwin1.dll___getreent
mov ebx, dword [esp + 0x58]
mov dword [esp + 4], str._6d_unresolved_strings_n
mov dword [esp + 8], ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
shl dword [esp + 0x4c], 1
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x44], eax
jl 0x6fba19b0
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x6fba12cf
cmp dword [esp + 0x5c], 3
jle 0x6fba19df
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x21
mov dword [esp + 4], 1
mov dword [esp], str.________reconstructing_block_..._n
mov dword [esp + 0xc], eax
call sub.cygwin1.dll_fwrite
mov ebx, dword [esp + 0x44]
test ebx, ebx
jle 0x6fba1a2c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38c]
xor edx, edx
lea ebx, [eax + ebx*4]
jmp 0x6fba1a0a
add edx, 1
mov ecx, dword [esp + edx*4 + 0x38c]
test ecx, ecx
je 0x6fba1a00
mov esi, dword [eax]
add eax, 4
sub ecx, 1
cmp ebx, eax
mov dword [esp + edx*4 + 0x38c], ecx
mov byte [edi + esi], dl
jne 0x6fba1a0a
cmp edx, 0xff
jg 0x6fba1a53
add esp, 0xb9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
sar eax, 5
mov eax, dword [ebx + eax*4]
jmp 0x6fba18f1
mov dword [esp + 0xbb0], 0x3ed
add esp, 0xb9c
pop ebx
pop esi
pop edi
pop ebp
jmp sym.cygbz2_1.dll_BZ2_bz__AssertH__fail