Function at 0xdcfb10
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xbcc
mov dword [ebp - 0xba8], edx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0xba4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xbac], ecx
cmp edx, 3
mov dword [ebp - 0xbb0], eax
mov dword [ebp - 0xbb4], edx
jg 0xdd06ab
mov dword [ebp - 0xb30], 0
mov eax, 2
lea esi, [ebp - 0xb30]
mov dword [esi + eax*4 - 4], 0
add eax, 1
cmp eax, 0x102
jne 0xdcfb5e
mov eax, dword [ebp - 0xbb0]
test eax, eax
jle 0xdcfb99
xor edx, edx
mov ecx, dword [ebp - 0xba8]
movzx eax, byte [edx + ecx]
add edx, 1
add dword [ebp + eax*4 - 0xb30], 1
cmp edx, dword [ebp - 0xbb0]
jne 0xdcfb7c
mov eax, dword [ebp - 0xb30]
mov edx, 2
mov dword [ebp - 0x72c], eax
mov eax, dword [esi + edx*4 - 4]
mov dword [ebp + edx*4 - 0x730], eax
add edx, 1
cmp edx, 0x101
jne 0xdcfbaa
mov edx, esi
lea ecx, [ebp - 0x730]
mov eax, dword [edx]
add dword [edx + 4], eax
add edx, 4
cmp edx, ecx
jne 0xdcfbc8
mov eax, dword [ebp - 0xbb0]
test eax, eax
jle 0xdcfc0f
xor ecx, ecx
mov ebx, dword [ebp - 0xba8]
mov edi, dword [ebp - 0xba4]
movzx eax, byte [ecx + ebx]
mov edx, dword [ebp + eax*4 - 0xb30]
sub edx, 1
mov dword [ebp + eax*4 - 0xb30], edx
mov dword [edi + edx*4], ecx
add ecx, 1
cmp ecx, dword [ebp - 0xbb0]
jne 0xdcfbe0
mov eax, dword [ebp - 0xbb0]
mov edi, dword [ebp - 0xbb0]
mov edx, dword [ebp - 0xbb0]
add eax, 0x1f
test edi, edi
cmovs edx, eax
sar edx, 5
lea eax, [edx + 2]
test eax, eax
jle 0xdcfc50
mov ecx, 1
lea eax, [edx + 3]
mov edx, dword [ebp - 0xbac]
mov dword [edx + ecx*4 - 4], 0
add ecx, 1
cmp ecx, eax
jne 0xdcfc3b
mov ebx, 1
mov ecx, dword [esi + ebx*4 - 4]
mov eax, 1
add ebx, 1
mov edx, ecx
and ecx, 0x1f
shl eax, cl
mov ecx, dword [ebp - 0xbac]
sar edx, 5
or dword [ecx + edx*4], eax
cmp ebx, 0x101
jne 0xdcfc55
mov ebx, dword [ebp - 0xbb0]
xor esi, esi
mov ecx, ebx
mov eax, 1
and ecx, 0x1f
mov edi, eax
shl edi, cl
mov edx, ebx
mov ecx, edi
mov edi, dword [ebp - 0xbac]
add esi, 1
sar edx, 5
or dword [edi + edx*4], ecx
lea ecx, [ebx + 1]
add ebx, 2
mov edx, ecx
and ecx, 0x1f
sar edx, 5
shl eax, cl
not eax
and dword [edi + edx*4], eax
cmp esi, 0x20
jne 0xdcfc84
mov eax, dword [ebp - 0xba4]
mov edx, dword [ebp - 0xba4]
mov dword [ebp - 0xba0], 1
sub eax, 4
sub edx, 0x10
mov dword [ebp - 0xbbc], eax
mov dword [ebp - 0xbc0], edx
cmp dword [ebp - 0xbb4], 3
jg 0xdd065b
mov ebx, dword [ebp - 0xbb0]
test ebx, ebx
jle 0xdcfd4d
xor ebx, ebx
xor esi, esi
mov edi, dword [ebp - 0xbac]
mov edx, ebx
mov ecx, ebx
and ecx, 0x1f
mov eax, 1
sar edx, 5
shl eax, cl
mov ecx, dword [ebp - 0xbb0]
test dword [edi + edx*4], eax
mov edx, dword [ebp - 0xba4]
mov edi, dword [ebp - 0xba8]
cmovne esi, ebx
mov eax, dword [edx + ebx*4]
sub eax, dword [ebp - 0xba0]
cmp eax, 0xffffffff
lea edx, [eax + ecx]
cmovle eax, edx
add ebx, 1
cmp ebx, ecx
mov dword [edi + eax*4], esi
jne 0xdcfd02
mov dword [ebp - 0xb98], 0xffffffff
mov dword [ebp - 0xb94], 0
mov edx, dword [ebp - 0xb98]
mov ecx, dword [ebp - 0xbac]
add edx, 1
mov eax, edx
sar eax, 5
mov dword [ebp - 0xb40], edx
mov edx, dword [ecx + eax*4]
jmp 0xdcfda1
test ecx, ecx
je 0xdcfe46
add dword [ebp - 0xb40], 1
mov eax, dword [ebp - 0xb40]
mov ebx, dword [ebp - 0xbac]
sar eax, 5
mov edx, dword [ebx + eax*4]
mov ecx, dword [ebp - 0xb40]
mov eax, 1
and ecx, 0x1f
shl eax, cl
test edx, eax
jne 0xdcfd80
mov eax, dword [ebp - 0xb40]
sub eax, 1
cmp dword [ebp - 0xbb0], eax
mov dword [ebp - 0xb9c], eax
jle 0xdd0583
mov eax, dword [ebp - 0xb40]
mov ecx, dword [ebp - 0xbac]
sar eax, 5
mov edx, dword [ecx + eax*4]
mov eax, 1
mov ecx, dword [ebp - 0xb40]
and ecx, 0x1f
shl eax, cl
test edx, eax
jne 0xdd0623
mov ebx, dword [ebp - 0xb40]
jmp 0xdcfe27
mov esi, dword [ebp - 0xbac]
add ebx, 1
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 0x1f
mov edx, dword [esi + eax*4]
mov eax, 1
shl eax, cl
test edx, eax
jne 0xdcfed7
test ecx, ecx
jne 0xdcfe02
jmp 0xdcfea4
add dword [ebp - 0xb40], 0x20
mov eax, dword [ebp - 0xb40]
mov esi, dword [ebp - 0xbac]
sar eax, 5
mov edx, dword [esi + eax*4]
cmp edx, 0xffffffff
je 0xdcfe2d
mov ecx, dword [ebp - 0xb40]
mov eax, 1
and ecx, 0x1f
shl eax, cl
test eax, edx
je 0xdcfdb5
add dword [ebp - 0xb40], 1
mov eax, 1
mov edx, dword [ebp - 0xb40]
mov ecx, dword [ebp - 0xb40]
mov edi, dword [ebp - 0xbac]
sar edx, 5
and ecx, 0x1f
shl eax, cl
test dword [edi + edx*4], eax
jne 0xdcfe63
jmp 0xdcfdb5
mov edi, dword [ebp - 0xbac]
add ebx, 0x20
mov eax, ebx
sar eax, 5
mov edx, dword [edi + eax*4]
test edx, edx
je 0xdcfe93
mov ecx, ebx
mov eax, 1
and ecx, 0x1f
shl eax, cl
test eax, edx
jne 0xdcfed7
add ebx, 1
mov eax, 1
mov ecx, ebx
mov edx, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, dword [ebp - 0xbac]
sar edx, 5
test dword [ecx + edx*4], eax
je 0xdcfeb8
sub ebx, 1
cmp dword [ebp - 0xbb0], ebx
mov dword [ebp - 0xb98], ebx
jle 0xdd0583
cmp dword [ebp - 0xb9c], ebx
jge 0xdcfd61
mov ebx, dword [ebp - 0xb9c]
mov esi, dword [ebp - 0xb98]
mov dword [ebp - 0xb84], 1
mov dword [ebp - 0xb8c], 0
mov dword [ebp - 0x19c], ebx
mov dword [ebp - 0x32c], esi
cmp dword [ebp - 0xb84], 0x62
jg 0xdd0434
sub dword [ebp - 0xb84], 1
mov edi, dword [ebp - 0xb84]
mov eax, dword [ebp - 0xb84]
mov edi, dword [ebp + edi*4 - 0x19c]
mov eax, dword [ebp + eax*4 - 0x32c]
mov dword [ebp - 0xb4c], edi
mov dword [ebp - 0xb5c], eax
sub eax, edi
cmp eax, 9
jg 0xdd033f
mov edx, dword [ebp - 0xb5c]
cmp edi, edx
je 0xdd02bd
cmp eax, 3
jle 0xdd007c
mov eax, edx
sub eax, 4
cmp edi, eax
jg 0xdd007c
mov ecx, dword [ebp - 0xba4]
mov eax, edx
shl eax, 2
mov dword [ebp - 0xb70], edx
mov dword [ebp - 0xb6c], eax
lea ecx, [eax + ecx - 0x10]
mov dword [ebp - 0xb58], ecx
mov ebx, dword [ebp - 0xb58]
mov esi, dword [ebp - 0xba8]
mov ecx, dword [ebp - 0xb6c]
mov ebx, dword [ebx]
mov esi, dword [esi + ebx*4]
mov dword [ebp - 0xb78], ebx
mov ebx, dword [ebp - 0xb70]
cmp dword [ebp - 0xb5c], ebx
mov dword [ebp - 0xbc4], esi
jl 0xdd0043
mov edi, dword [ebp - 0xb58]
mov edx, dword [ebp - 0xba8]
mov eax, dword [edi + 0x10]
cmp esi, dword [edx + eax*4]
jbe 0xdd0043
mov esi, ecx
mov edx, edi
add esi, 0x10
mov dword [ebp - 0xbc8], esi
jmp 0xdd0028
mov ecx, dword [ebp - 0xbc8]
mov eax, dword [edx + 0x20]
add edx, 0x10
mov edi, dword [ebp - 0xba8]
lea esi, [ecx + 0x10]
mov dword [ebp - 0xbc8], esi
mov esi, dword [ebp - 0xbc4]
cmp esi, dword [edi + eax*4]
jbe 0xdd0043
mov edi, dword [ebp - 0xbc0]
add ebx, 4
cmp dword [ebp - 0xb5c], ebx
mov dword [ecx + edi], eax
jge 0xdd0002
lea ecx, [ebx*4]
mov eax, dword [ebp - 0xb78]
mov edi, dword [ebp - 0xbc0]
sub dword [ebp - 0xb70], 1
sub dword [ebp - 0xb58], 4
sub dword [ebp - 0xb6c], 4
mov dword [edi + ecx], eax
mov eax, dword [ebp - 0xb70]
sub eax, 4
cmp dword [ebp - 0xb4c], eax
jle 0xdcffae
mov ecx, dword [ebp - 0xb5c]
sub ecx, 1
cmp dword [ebp - 0xb4c], ecx
jg 0xdd02bd
mov eax, dword [ebp - 0xb5c]
mov edx, dword [ebp - 0xba4]
mov dword [ebp - 0xbb8], ecx
shl eax, 2
lea edx, [eax + edx - 4]
mov dword [ebp - 0xb50], edx
mov edx, dword [ebp - 0xb5c]
mov dword [ebp - 0xb74], eax
lea ebx, [edx*4 + 4]
mov dword [ebp - 0xb54], ebx
mov esi, dword [ebp - 0xb50]
mov ebx, edx
mov edi, dword [ebp - 0xba8]
cmp dword [ebp - 0xb5c], edx
mov esi, dword [esi]
mov edi, dword [edi + esi*4]
mov dword [ebp - 0xb44], esi
mov dword [ebp - 0xbc4], edi
jl 0xdd0153
mov ecx, dword [ebp - 0xb50]
mov esi, dword [ebp - 0xba8]
mov edx, dword [ecx + 4]
cmp edi, dword [esi + edx*4]
jbe 0xdd0153
mov edi, dword [ebp - 0xb54]
mov dword [ebp - 0xbc8], edi
jmp 0xdd0138
mov eax, dword [ebp - 0xbc8]
mov edx, dword [ecx + 8]
add ecx, 4
mov esi, dword [ebp - 0xba8]
lea edi, [eax + 4]
mov dword [ebp - 0xbc8], edi
mov edi, dword [ebp - 0xbc4]
cmp edi, dword [esi + edx*4]
jbe 0xdd0153
mov esi, dword [ebp - 0xbbc]
add ebx, 1
cmp dword [ebp - 0xb5c], ebx
mov dword [eax + esi], edx
jge 0xdd0112
lea eax, [ebx*4]
mov edx, dword [ebp - 0xbbc]
mov ecx, dword [ebp - 0xb44]
sub dword [ebp - 0xb50], 4
sub dword [ebp - 0xb74], 4
sub dword [ebp - 0xb54], 4
mov dword [edx + eax], ecx
mov edx, dword [ebp - 0xbb8]
sub dword [ebp - 0xbb8], 1
mov ebx, dword [ebp - 0xbb8]
cmp dword [ebp - 0xb4c], ebx
jg 0xdd02bd
mov eax, dword [ebp - 0xb74]
jmp 0xdd00c9
cmp edi, dword [ebp - 0xb90]
jl 0xdd02bd
mov ebx, dword [ebp - 0xb90]
mov eax, dword [ebp - 0xb48]
sub ebx, dword [ebp - 0xb4c]
sub eax, dword [ebp - 0xb90]
cmp ebx, eax
cmovg ebx, eax
test ebx, ebx
jle 0xdd0204
mov eax, dword [ebp - 0xb48]
mov esi, dword [ebp - 0xba4]
sub eax, ebx
lea ecx, [esi + eax*4]
mov esi, dword [ebp - 0xb64]
mov eax, dword [ebp - 0xb64]
mov edx, dword [eax]
mov eax, dword [ecx]
mov dword [esi], eax
add esi, 4
mov dword [ecx], edx
add ecx, 4
sub ebx, 1
mov dword [ebp - 0xb64], esi
jne 0xdd01e5
mov esi, dword [ebp - 0xb5c]
mov eax, edi
sub eax, dword [ebp - 0xb80]
sub esi, edi
mov edi, dword [ebp - 0xb5c]
cmp esi, eax
cmovg esi, eax
mov dword [ebp - 0xb7c], eax
add edi, 1
test esi, esi
jle 0xdd0255
mov ecx, dword [ebp - 0xba4]
mov eax, edi
mov edx, dword [ebp - 0xb48]
sub eax, esi
lea ebx, [ecx + edx*4]
lea ecx, [ecx + eax*4]
mov edx, dword [ebx]
mov eax, dword [ecx]
mov dword [ebx], eax
add ebx, 4
mov dword [ecx], edx
add ecx, 4
sub esi, 1
jne 0xdd0242
mov ebx, dword [ebp - 0xb48]
mov esi, dword [ebp - 0xb4c]
mov eax, dword [ebp - 0xb5c]
lea ecx, [ebx + esi - 1]
mov ebx, edi
sub ecx, dword [ebp - 0xb90]
sub ebx, dword [ebp - 0xb7c]
mov edx, ecx
sub edx, esi
sub eax, ebx
cmp edx, eax
jle 0xdd04fb
mov edi, dword [ebp - 0xb84]
mov edx, dword [ebp - 0xb5c]
mov eax, edi
mov dword [ebp + edi*4 - 0x19c], esi
add eax, 1
mov dword [ebp + edi*4 - 0x32c], ecx
add edi, 2
mov dword [ebp + eax*4 - 0x19c], ebx
mov dword [ebp + eax*4 - 0x32c], edx
mov dword [ebp - 0xb84], edi
mov ecx, dword [ebp - 0xb84]
test ecx, ecx
jg 0xdcff24
mov ebx, dword [ebp - 0xba4]
mov edx, 0xffffffff
mov ecx, dword [ebp - 0xb40]
lea esi, [ebx + ecx*4]
mov ebx, dword [ebp - 0xb9c]
mov eax, dword [esi - 4]
mov ecx, dword [ebp - 0xba8]
mov edi, dword [ecx + eax*4]
cmp edx, edi
je 0xdd030f
mov ecx, ebx
mov eax, 1
and ecx, 0x1f
mov edx, ebx
shl eax, cl
mov ecx, dword [ebp - 0xbac]
sar edx, 5
or dword [ecx + edx*4], eax
add ebx, 1
add esi, 4
cmp dword [ebp - 0xb98], ebx
mov edx, edi
jge 0xdd02e5
mov eax, dword [ebp - 0xb94]
add eax, 1
sub eax, dword [ebp - 0xb9c]
add eax, dword [ebp - 0xb98]
mov dword [ebp - 0xb94], eax
jmp 0xdcfd61
imul eax, dword [ebp - 0xb8c], 0x1dc5
mov edx, 0xaaaaaaab
add eax, 1
and eax, 0x7fff
mov dword [ebp - 0xb8c], eax
mul edx
mov eax, dword [ebp - 0xb8c]
shr edx, 1
lea edx, [edx + edx*2]
sub eax, edx
jne 0xdd04a7
mov esi, dword [ebp - 0xb4c]
mov edi, dword [ebp - 0xba4]
mov edx, dword [ebp - 0xba8]
mov ecx, esi
mov ebx, esi
mov eax, dword [edi + esi*4]
mov esi, dword [ebp - 0xba4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xb88], eax
lea ebx, [esi + ebx*4]
mov edi, dword [ebp - 0xb4c]
add ecx, 1
mov esi, dword [ebp - 0xb5c]
mov eax, ecx
mov dword [ebp - 0xb68], ecx
mov dword [ebp - 0xb64], ebx
mov dword [ebp - 0xb90], edi
mov dword [ebp - 0xb80], esi
mov edi, esi
mov dword [ebp - 0xb60], ebx
sub eax, 1
cmp dword [ebp - 0xb80], eax
mov dword [ebp - 0xb48], eax
jl 0xdd01a1
mov edx, dword [ebp - 0xb60]
mov ebx, dword [ebp - 0xba8]
mov ecx, dword [edx]
mov eax, dword [ebx + ecx*4]
sub eax, dword [ebp - 0xb88]
cmp eax, 0
jne 0xdd0445
mov esi, dword [ebp - 0xb90]
mov ebx, edx
mov eax, dword [ebp - 0xba4]
lea edx, [eax + esi*4]
add esi, 1
mov eax, dword [edx]
mov dword [ebp - 0xb90], esi
mov dword [ebx], eax
mov dword [edx], ecx
add dword [ebp - 0xb68], 1
add dword [ebp - 0xb60], 4
mov eax, dword [ebp - 0xb68]
jmp 0xdd03cd
mov dword [esp], 0x3ec
call fcn.00dc6a30
jmp 0xdcff31
jle 0xdd041e
mov ebx, dword [ebp - 0xb80]
mov eax, dword [ebp - 0xba4]
lea esi, [eax + ebx*4]
jmp 0xdd0484
mov eax, dword [ebp - 0xba4]
lea edx, [eax + edi*4]
sub edi, 1
mov eax, dword [edx]
mov dword [esi], eax
lea eax, [ebx - 1]
mov dword [edx], ecx
mov dword [ebp - 0xb80], eax
sub esi, 4
mov ebx, eax
cmp eax, dword [ebp - 0xb48]
jl 0xdd01a1
mov ecx, dword [esi]
mov edx, dword [ebp - 0xba8]
mov eax, dword [edx + ecx*4]
sub eax, dword [ebp - 0xb88]
cmp eax, 0
je 0xdd0458
jl 0xdd04e1
lea eax, [ebx - 1]
mov dword [ebp - 0xb80], eax
jmp 0xdd0473
sub eax, 1
je 0xdd0546
mov esi, dword [ebp - 0xb5c]
mov edi, dword [ebp - 0xba4]
mov edx, dword [ebp - 0xba8]
mov ecx, dword [ebp - 0xb4c]
mov ebx, dword [ebp - 0xb4c]
mov eax, dword [edi + esi*4]
mov esi, edi
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xb88], eax
jmp 0xdd0399
mov edx, dword [ebp - 0xb60]
sub ebx, 1
mov dword [ebp - 0xb80], ebx
mov eax, dword [edx]
mov dword [edx], ecx
mov dword [esi], eax
jmp 0xdd041e
mov edx, esi
mov esi, dword [ebp - 0xb84]
mov edi, dword [ebp - 0xb5c]
mov eax, esi
add eax, 1
mov dword [ebp + esi*4 - 0x19c], ebx
mov dword [ebp + esi*4 - 0x32c], edi
add esi, 2
mov dword [ebp + eax*4 - 0x32c], ecx
mov dword [ebp - 0xb84], esi
mov ecx, dword [ebp - 0xb84]
mov dword [ebp + eax*4 - 0x19c], edx
test ecx, ecx
jg 0xdcff24
jmp 0xdd02cb
mov eax, dword [ebp - 0xb5c]
mov ecx, dword [ebp - 0xba4]
add eax, dword [ebp - 0xb4c]
mov ebx, dword [ebp - 0xba8]
mov esi, dword [ebp - 0xba4]
sar eax, 1
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0xb4c]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0xb4c]
mov dword [ebp - 0xb88], eax
jmp 0xdd0399
cmp dword [ebp - 0xbb4], 3
jg 0xdd0634
shl dword [ebp - 0xba0], 1
mov esi, dword [ebp - 0xbb0]
cmp dword [ebp - 0xba0], esi
jle 0xdd0613
cmp dword [ebp - 0xbb4], 3
jg 0xdd06d8
mov eax, dword [ebp - 0xbb0]
xor ecx, ecx
mov ebx, 1
test eax, eax
jle 0xdd0682
mov edx, dword [ebp + ecx*4 - 0x72c]
lea eax, [ebp + ecx*4 - 0x72c]
test edx, edx
jne 0xdd05e5
mov edx, dword [eax + 4]
add ecx, 1
add eax, 4
test edx, edx
je 0xdd05d8
mov edi, dword [ebp - 0xba4]
mov esi, dword [ebp - 0xba8]
mov eax, dword [edi + ebx*4 - 4]
mov byte [eax + esi], cl
cmp ebx, dword [ebp - 0xbb0]
je 0xdd068d
lea eax, [edx - 1]
add ebx, 1
mov dword [ebp + ecx*4 - 0x72c], eax
jmp 0xdd05c6
mov edx, dword [ebp - 0xb94]
test edx, edx
jne 0xdcfce7
jmp 0xdd05a4
mov eax, dword [ebp - 0xb9c]
mov dword [ebp - 0xb98], eax
jmp 0xdcfd61
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov ebx, dword [ebp - 0xb94]
mov dword [esp + 4], str._6d_unresolved_strings_n
add eax, 0x40
mov dword [esp + 8], ebx
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0xdd0590
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov ecx, dword [ebp - 0xba0]
mov dword [esp + 4], str.________depth__6d_has
add eax, 0x40
mov dword [esp + 8], ecx
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0xdcfcf4
add esp, 0xbcc
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ecx, 0xff
jle 0xdd0682
mov dword [ebp + 8], 0x3ed
add esp, 0xbcc
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00dc6a30
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
mov dword [esp], str.________bucket_sorting_..._n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
jmp 0xdcfb49
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x21
mov dword [esp + 4], 1
mov dword [esp], str.________reconstructing_block_..._n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
jmp 0xdd05b1