Function at 0x6844169c
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xb9c
cmp dword [esp + 0xbb8], 3
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edx
jg 0x68441691
xor eax, eax
nop
mov dword [esp + eax*4 + 0x780], 0
inc eax
cmp eax, 0x100
jle 0x684411a4
xor edx, edx
jmp 0x684411cb
mov ecx, dword [esp + 0x58]
movzx ebx, byte [edx + ecx]
inc dword [esp + ebx*4 + 0x780]
inc edx
cmp edx, dword [esp + 0xbb4]
jl 0x684411bb
xor edx, edx
nop
mov esi, dword [esp + edx*4 + 0x780]
mov dword [esp + edx*4 + 0x380], esi
inc edx
cmp edx, 0xff
jle 0x684411d8
mov edx, 1
mov edi, dword [esp + edx*4 + 0x77c]
add dword [esp + edx*4 + 0x780], edi
inc edx
cmp edx, 0x100
jle 0x684411f4
xor ecx, ecx
jmp 0x6844122f
mov ebx, dword [esp + 0x58]
movzx eax, byte [ecx + ebx]
mov edx, dword [esp + eax*4 + 0x780]
dec edx
mov ebp, dword [esp + 0x5c]
mov dword [esp + eax*4 + 0x780], edx
mov dword [ebp + edx*4], ecx
inc ecx
cmp ecx, dword [esp + 0xbb4]
jl 0x6844120f
mov eax, dword [esp + 0xbb4]
test eax, eax
js 0x68441a1e
sar eax, 5
lea edx, [eax + 2]
xor eax, eax
jmp 0x68441260
mov ecx, dword [esp + 0xbb0]
mov dword [ecx + eax*4], 0
inc eax
cmp eax, edx
jl 0x68441251
xor edx, edx
mov ebx, 1
nop
mov ecx, dword [esp + edx*4 + 0x780]
mov edi, ecx
mov eax, ebx
and ecx, 0x1f
sar edi, 5
shl eax, cl
mov esi, dword [esp + 0xbb0]
inc edx
or dword [esi + edi*4], eax
cmp edx, 0xff
jle 0x6844126c
xor ebx, ebx
mov esi, 1
mov eax, dword [esp + 0xbb4]
lea ebp, [eax + ebx*2]
mov ecx, ebp
and ecx, 0x1f
mov edi, esi
shl edi, cl
mov eax, ebp
mov edx, edi
sar eax, 5
mov edi, dword [esp + 0xbb0]
lea ecx, [ebp + 1]
or dword [edi + eax*4], edx
mov ebp, ecx
mov edx, esi
and ecx, 0x1f
shl edx, cl
sar ebp, 5
not edx
inc ebx
and dword [edi + ebp*4], edx
cmp ebx, 0x1f
jle 0x68441299
mov dword [esp + 0x54], 1
cmp dword [esp + 0xbb8], 3
jg 0x684419de
xor edx, edx
xor ebx, ebx
cmp edx, dword [esp + 0xbb4]
jge 0x68441356
mov esi, 1
jmp 0x68441312
mov edi, dword [esp + 0x58]
mov dword [edi + eax*4], ebx
inc edx
cmp edx, dword [esp + 0xbb4]
jge 0x68441356
mov ecx, edx
and ecx, 0x1f
mov edi, esi
shl edi, cl
mov eax, edx
mov ebp, edi
sar eax, 5
mov edi, dword [esp + 0xbb0]
test dword [edi + eax*4], ebp
je 0x68441330
mov ebx, edx
mov ebp, dword [esp + 0x5c]
mov eax, dword [ebp + edx*4]
sub eax, dword [esp + 0x54]
jns 0x68441301
add eax, dword [esp + 0xbb4]
mov edi, dword [esp + 0x58]
mov dword [edi + eax*4], ebx
inc edx
cmp edx, dword [esp + 0xbb4]
jl 0x68441312
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0xffffffff
mov ebx, dword [esp + 0x4c]
inc ebx
mov ecx, ebx
and ecx, 0x1f
mov edx, ebx
mov eax, 1
sar edx, 5
shl eax, cl
mov esi, dword [esp + 0xbb0]
test dword [esi + edx*4], eax
je 0x684413b0
test ecx, ecx
je 0x684413b0
mov esi, 1
inc ebx
mov ecx, ebx
and ecx, 0x1f
mov eax, ebx
mov ebp, esi
sar eax, 5
shl ebp, cl
mov edi, dword [esp + 0xbb0]
test dword [edi + eax*4], ebp
je 0x684413b0
test ecx, ecx
jne 0x68441391
mov ebp, ebx
mov ecx, ebx
sar ebp, 5
and ecx, 0x1f
mov edx, 1
mov esi, dword [esp + 0xbb0]
shl edx, cl
mov eax, dword [esi + ebp*4]
test edx, eax
je 0x68441426
cmp eax, 0xffffffff
jne 0x684413e9
add ebx, 0x20
mov eax, ebx
sar eax, 5
mov edi, dword [esp + 0xbb0]
cmp dword [edi + eax*4], 0xffffffff
je 0x684413d4
mov ecx, ebx
and ecx, 0x1f
mov edi, ebx
mov edx, 1
sar edi, 5
shl edx, cl
mov esi, dword [esp + 0xbb0]
test dword [esi + edi*4], edx
je 0x68441426
mov edx, 1
inc ebx
mov ecx, ebx
and ecx, 0x1f
mov eax, ebx
mov edi, edx
sar eax, 5
shl edi, cl
mov esi, dword [esp + 0xbb0]
test dword [esi + eax*4], edi
jne 0x6844140b
lea ebp, [ebx - 1]
mov edx, dword [esp + 0xbb4]
cmp ebp, edx
mov dword [esp + 0x50], ebp
jge 0x68441917
mov ecx, ebx
and ecx, 0x1f
mov edi, ebx
mov eax, 1
sar edi, 5
shl eax, cl
mov esi, dword [esp + 0xbb0]
test dword [esi + edi*4], eax
jne 0x68441481
test ecx, ecx
je 0x68441481
mov esi, 1
inc ebx
mov ecx, ebx
and ecx, 0x1f
mov edx, ebx
mov ebp, esi
sar edx, 5
shl ebp, cl
mov eax, dword [esp + 0xbb0]
test dword [eax + edx*4], ebp
jne 0x68441481
test ecx, ecx
jne 0x68441462
mov edi, ebx
mov ecx, ebx
sar edi, 5
and ecx, 0x1f
mov ebp, 1
mov esi, dword [esp + 0xbb0]
shl ebp, cl
mov eax, dword [esi + edi*4]
test ebp, eax
jne 0x684414f7
test eax, eax
jmp 0x684414b8
add ebx, 0x20
mov eax, ebx
sar eax, 5
mov edi, dword [esp + 0xbb0]
mov edx, dword [edi + eax*4]
test edx, edx
je 0x684414a4
mov ecx, ebx
and ecx, 0x1f
mov edi, ebx
mov edx, 1
sar edi, 5
shl edx, cl
mov esi, dword [esp + 0xbb0]
test dword [esi + edi*4], edx
jne 0x684414f7
mov edx, 1
inc ebx
mov ecx, ebx
and ecx, 0x1f
mov eax, ebx
mov edi, edx
sar eax, 5
shl edi, cl
mov esi, dword [esp + 0xbb0]
test dword [esi + eax*4], edi
je 0x684414dc
dec ebx
mov edx, dword [esp + 0xbb4]
cmp ebx, edx
mov dword [esp + 0x4c], ebx
jge 0x68441917
mov ebp, dword [esp + 0x50]
cmp ebx, ebp
jle 0x68441366
mov eax, ebx
mov ecx, dword [esp + 0x48]
sub eax, dword [esp + 0x50]
lea edi, [eax + ecx + 1]
mov esi, dword [esp + 0x50]
mov dword [esp + 0x48], edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x3c], 1
cmp dword [esp + 0x3c], 0x62
jg 0x6844189d
dec dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + edx*4 + 0x60]
mov ebx, dword [esp + 0x3c]
mov ebx, dword [esp + ebx*4 + 0x1f0]
mov eax, esi
sub eax, ebx
cmp eax, 9
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], esi
jg 0x684416b0
cmp ebx, esi
je 0x68441633
cmp eax, 3
jle 0x684415df
mov ecx, esi
sub ecx, 4
cmp ecx, ebx
jl 0x684415df
lea esi, [esi]
mov edi, dword [esp + 0x5c]
lea eax, [ecx + 4]
mov esi, dword [edi + ecx*4]
mov ebp, dword [esp + 0x58]
cmp eax, dword [esp + 0x34]
mov ebx, dword [ebp + esi*4]
jg 0x684415d0
mov edx, dword [edi + eax*4]
mov edi, dword [esp + 0x58]
cmp dword [edi + edx*4], ebx
jae 0x684415d0
mov edi, dword [esp + 0x5c]
mov dword [edi + eax*4 - 0x10], edx
add eax, 4
cmp eax, dword [esp + 0x34]
jle 0x684415b0
lea esi, [esi]
mov edx, dword [esp + 0x5c]
dec ecx
mov dword [edx + eax*4 - 0x10], esi
cmp ecx, dword [esp + 0x38]
jge 0x68441598
mov ecx, dword [esp + 0x34]
dec ecx
cmp ecx, dword [esp + 0x38]
jl 0x68441633
nop
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov esi, dword [ebx + ecx*4]
mov ebx, dword [eax + esi*4]
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x34]
jg 0x68441624
mov edi, dword [esp + 0x5c]
nop
mov edx, dword [edi + eax*4]
mov ebp, dword [esp + 0x58]
cmp dword [ebp + edx*4], ebx
jae 0x68441624
mov edi, dword [esp + 0x5c]
mov dword [edi + eax*4 - 4], edx
inc eax
cmp eax, dword [esp + 0x34]
jle 0x68441608
mov edi, dword [esp + 0x5c]
mov dword [edi + eax*4 - 4], esi
dec ecx
cmp ecx, dword [esp + 0x38]
jge 0x684415ec
mov edx, dword [esp + 0x3c]
test edx, edx
jg 0x68441548
mov edx, dword [esp + 0x50]
cmp edx, dword [esp + 0x4c]
mov ecx, 0xffffffff
jg 0x68441366
mov esi, 1
mov ebx, dword [esp + 0x5c]
mov edi, dword [ebx + edx*4]
mov ebp, dword [esp + 0x58]
mov ebx, dword [ebp + edi*4]
cmp ecx, ebx
je 0x68441685
mov ecx, edx
and ecx, 0x1f
mov eax, edx
mov edi, esi
shl edi, cl
sar eax, 5
mov ebp, dword [esp + 0xbb0]
or dword [ebp + eax*4], edi
mov ecx, ebx
inc edx
cmp edx, dword [esp + 0x4c]
jle 0x68441657
jmp 0x68441366
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
push 0x1b
push 1
push str.________bucket_sorting_..._n
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x684411a0
mov ebp, dword [esp + 0x30]
lea edi, [ebp + ebp*2]
lea edx, [edi + edi*4]
mov ebx, edx
shl ebx, 7
sub ebx, edx
lea eax, [ebp + ebx*4 + 1]
and eax, 0x7fff
xor edx, edx
mov ecx, 3
mov dword [esp + 0x30], eax
div ecx
test edx, edx
jne 0x684418b2
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx + ebx*4]
mov esi, dword [esp + 0x58]
mov ebx, dword [esi + eax*4]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x44], edi
mov ebp, edi
mov dword [esp + 0x40], edx
mov ecx, edx
cmp ebp, ecx
jg 0x6844173e
mov edi, dword [esp + 0x5c]
mov edx, dword [edi + ebp*4]
mov esi, dword [esp + 0x58]
mov eax, dword [esi + edx*4]
sub eax, ebx
cmp eax, 0
jne 0x68441840
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + edi*4]
mov dword [esi + ebp*4], eax
mov dword [esi + edi*4], edx
inc edi
mov dword [esp + 0x44], edi
inc ebp
cmp ebp, ecx
jle 0x6844170a
mov ebx, dword [esp + 0x44]
cmp dword [esp + 0x40], ebx
jl 0x68441633
mov eax, ebp
mov edx, dword [esp + 0x44]
sub eax, dword [esp + 0x44]
sub edx, dword [esp + 0x38]
cmp eax, edx
jle 0x68441760
mov eax, edx
mov ebx, ebp
mov esi, dword [esp + 0x38]
sub ebx, eax
mov edi, eax
jmp 0x6844178f
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + esi*4]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xc], eax
mov eax, dword [edx + ebx*4]
mov edx, dword [esp + 0x5c]
mov dword [edx + esi*4], eax
mov eax, dword [esp + 0xc]
mov dword [edx + ebx*4], eax
inc esi
inc ebx
dec edi
test edi, edi
jg 0x6844176c
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
sub edx, ecx
sub eax, dword [esp + 0x40]
cmp edx, eax
jle 0x684417a7
mov edx, eax
mov edi, dword [esp + 0x34]
sub edi, edx
lea ebx, [edi + 1]
mov esi, ebp
mov edi, edx
jmp 0x684417db
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + esi*4]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xc], eax
mov eax, dword [edx + ebx*4]
mov edx, dword [esp + 0x5c]
mov dword [edx + esi*4], eax
mov eax, dword [esp + 0xc]
mov dword [edx + ebx*4], eax
inc esi
inc ebx
dec edi
test edi, edi
jg 0x684417b8
mov eax, dword [esp + 0x38]
add eax, ebp
sub dword [esp + 0x40], ecx
sub eax, dword [esp + 0x44]
mov edi, dword [esp + 0x34]
sub edi, dword [esp + 0x40]
lea ebx, [eax - 1]
lea ecx, [edi + 1]
mov esi, ebx
mov ebp, dword [esp + 0x34]
sub esi, dword [esp + 0x38]
sub ebp, ecx
cmp esi, ebp
jle 0x684418cc
mov edx, dword [esp + 0x3c]
mov dword [esp + edx*4 + 0x60], ebx
mov ebx, edx
inc ebx
mov ebp, dword [esp + 0x38]
mov dword [esp + edx*4 + 0x1f0], ebp
mov dword [esp + ebx*4 + 0x1f0], ecx
add edx, 2
mov ecx, dword [esp + 0x34]
mov dword [esp + ebx*4 + 0x60], ecx
mov dword [esp + 0x3c], edx
jmp 0x68441633
jle 0x68441739
nop
cmp ebp, ecx
jg 0x6844173e
mov edi, dword [esp + 0x5c]
mov edx, dword [edi + ecx*4]
mov esi, dword [esp + 0x58]
mov eax, dword [esi + edx*4]
sub eax, ebx
cmp eax, 0
jne 0x6844187c
mov esi, dword [esp + 0x40]
mov eax, dword [edi + esi*4]
mov dword [edi + ecx*4], eax
mov dword [edi + esi*4], edx
dec esi
mov dword [esp + 0x40], esi
dec ecx
jmp 0x68441848
jge 0x68441877
cmp ebp, ecx
jg 0x6844173e
mov edi, dword [esp + 0x5c]
mov edx, dword [edi + ebp*4]
mov esi, dword [edi + ecx*4]
mov dword [edi + ebp*4], esi
mov dword [edi + ecx*4], edx
inc ebp
dec ecx
jmp 0x68441706
sub esp, 0xc
push 0x3ec
call fcn.68449c98
add esp, 0x10
jmp 0x68441553
dec edx
je 0x684418f9
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x34]
mov eax, dword [ebx + ebp*4]
mov ecx, dword [esp + 0x58]
mov ebx, dword [ecx + eax*4]
jmp 0x684416f2
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [esp + esi*4 + 0x1f0], ecx
mov dword [esp + esi*4 + 0x60], eax
mov edi, dword [esp + 0x38]
inc esi
add dword [esp + 0x3c], 2
mov dword [esp + esi*4 + 0x1f0], edi
mov dword [esp + esi*4 + 0x60], ebx
jmp 0x68441633
mov edi, dword [esp + 0x38]
add edi, dword [esp + 0x34]
sar edi, 1
mov esi, dword [esp + 0x5c]
mov edx, dword [esi + edi*4]
mov ebp, dword [esp + 0x58]
mov ebx, dword [ebp + edx*4]
jmp 0x684416f2
cmp dword [esp + 0xbb8], 3
jg 0x684419bd
mov ebx, dword [esp + 0x54]
shl ebx, 1
mov edx, dword [esp + 0xbb4]
cmp ebx, edx
mov dword [esp + 0x54], ebx
jg 0x68441946
mov ebp, dword [esp + 0x48]
test ebp, ebp
jne 0x684412df
cmp dword [esp + 0xbb8], 3
jg 0x684419ff
xor ecx, ecx
xor ebx, ebx
cmp ecx, dword [esp + 0xbb4]
jge 0x684419b2
mov edx, dword [esp + 0x380]
jmp 0x68441972
inc ecx
mov edx, dword [esp + ecx*4 + 0x380]
test edx, edx
je 0x6844196a
lea eax, [edx - 1]
mov dword [esp + ecx*4 + 0x380], eax
mov esi, dword [esp + 0x5c]
mov ebp, dword [esi + ebx*4]
mov edi, dword [esp + 0x58]
mov byte [edi + ebp], cl
inc ebx
cmp ebx, dword [esp + 0xbb4]
mov edx, eax
jl 0x68441972
cmp ecx, 0xff
jle 0x684419b2
sub esp, 0xc
push 0x3ed
call fcn.68449c98
add esp, 0x10
add esp, 0xb9c
pop ebx
pop esi
pop edi
pop ebp
ret
push edx
push dword [esp + 0x4c]
mov esi, dword [sym.imp.msvcrt.dll__iob]
push str._6d_unresolved_strings_n
add esi, 0x40
push esi
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x68441925
push edi
push dword [esp + 0x58]
mov ebx, dword [sym.imp.msvcrt.dll__iob]
push str.________depth__6d_has
add ebx, 0x40
push ebx
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x684412ed
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
push 0x21
push 1
push str.________reconstructing_block_..._n
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x68441954
add eax, 0x1f
jmp 0x68441247