Function at 0x61dfa0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x1230
call fcn.005d1cf0
mov esi, dword [esp + 0x1244]
mov eax, dword [esi + 0x18]
mov ebp, dword [esi + 0x20]
mov ebx, dword [esi + 0x44]
mov edi, dword [esi + 0x268]
cmp ebx, 0x2710
jge 0x61dff4
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
push edi
push ebx
push eax
call fcn.0061f9e0
add esp, 0xc
mov dword [esi + 0x1c], 0xffffffff
mov eax, dword [esi + 0x44]
test eax, eax
jg 0x61f906
jmp 0x61f91c
mov dword [esp + 4], eax
mov dword [esp + 0x14], ebp
mov eax, dword [esi + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x30]
mov edx, ebx
and edx, 1
cmp eax, 2
mov ecx, 1
cmovge ecx, eax
cmp ecx, 0x64
mov eax, 0x64
cmovb eax, ecx
mov dword [esp + 8], edx
lea esi, [ebx + edx]
dec al
movzx eax, al
imul eax, eax, 0xab
shr eax, 9
imul eax, ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], edi
cmp edi, 4
mov ebp, ebx
jl 0x61e069
push 2
call dword [0x71401c]
add esp, 4
push eax
push 1
push 0x21
push str.________main_sort_initialise_..._n
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov edi, dword [esp + 0x28]
lea eax, [edi + esi]
add eax, 0x22
mov dword [esp + 0x34], eax
push 0x40004
push 0
mov esi, dword [esp + 0xc]
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
movzx ebx, byte [edi]
mov dword [esp + 0x18], ebp
dec ebp
mov ecx, 0xfffffffc
mov eax, ebp
mov dword [esp + 0x58], ebp
nop
mov dword [esp], ecx
mov edi, ebp
mov ecx, dword [esp + 0x34]
mov word [ecx + ebp*2], 0
mov esi, dword [esp + 0x28]
movzx eax, byte [esi + ebp]
mov edx, eax
shl edx, 0xa
shl ebx, 2
or ebx, edx
mov edx, dword [esp + 4]
inc dword [edx + ebx]
mov word [ecx + ebp*2 - 2], 0
movzx edx, byte [esi + ebp - 1]
mov ebx, edx
shl ebx, 0xa
lea eax, [ebx + eax*4]
mov ebx, dword [esp + 4]
inc dword [ebx + eax]
mov word [ecx + ebp*2 - 4], 0
movzx ebp, byte [esi + ebp - 2]
mov eax, ebp
shl eax, 0xa
lea eax, [eax + edx*4]
mov edx, dword [esp + 4]
inc dword [edx + eax]
mov word [ecx + edi*2 - 6], 0
movzx ebx, byte [esi + edi - 3]
mov esi, dword [esp + 4]
mov eax, ebx
shl eax, 8
or eax, ebp
inc dword [esi + eax*4]
mov edx, dword [esp]
lea ebp, [edi - 4]
lea ecx, [edx - 4]
cmp edi, 6
ja 0x61e0a0
cmp edi, 4
jb 0x61e17b
mov ebx, dword [esp + 0x18]
mov edi, ebx
neg edi
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x58]
add esi, ebp
mov ecx, dword [esp + 4]
lea ebx, [ebx + ebx*2]
add ebx, dword [esp + 8]
add ebp, ebx
add ebp, 0x20
nop word cs:[eax + eax]
mov word [ebp + edx*2], 0
shr eax, 8
movzx ebx, byte [esi + edx]
shl ebx, 8
or eax, ebx
inc dword [ecx + eax*4]
dec edx
cmp edi, edx
jne 0x61e160
mov edx, dword [esp + 0x28]
movzx eax, byte [edx]
mov ecx, dword [esp + 0x18]
mov byte [edx + ecx], al
mov esi, dword [esp + 0x34]
mov word [esi + ecx*2], 0
movzx eax, byte [edx + 1]
mov byte [edx + ecx + 1], al
mov word [esi + ecx*2 + 2], 0
movzx eax, byte [edx + 2]
mov byte [edx + ecx + 2], al
mov word [esi + ecx*2 + 4], 0
movzx eax, byte [edx + 3]
mov byte [edx + ecx + 3], al
mov word [esi + ecx*2 + 6], 0
movzx eax, byte [edx + 4]
mov byte [edx + ecx + 4], al
mov word [esi + ecx*2 + 8], 0
movzx eax, byte [edx + 5]
mov byte [edx + ecx + 5], al
mov word [esi + ecx*2 + 0xa], 0
movzx eax, byte [edx + 6]
mov byte [edx + ecx + 6], al
mov word [esi + ecx*2 + 0xc], 0
movzx eax, byte [edx + 7]
mov byte [edx + ecx + 7], al
mov word [esi + ecx*2 + 0xe], 0
movzx eax, byte [edx + 8]
mov byte [edx + ecx + 8], al
mov word [esi + ecx*2 + 0x10], 0
movzx eax, byte [edx + 9]
mov byte [edx + ecx + 9], al
mov word [esi + ecx*2 + 0x12], 0
movzx eax, byte [edx + 0xa]
mov byte [edx + ecx + 0xa], al
mov word [esi + ecx*2 + 0x14], 0
movzx eax, byte [edx + 0xb]
mov byte [edx + ecx + 0xb], al
mov word [esi + ecx*2 + 0x16], 0
movzx eax, byte [edx + 0xc]
mov byte [edx + ecx + 0xc], al
mov word [esi + ecx*2 + 0x18], 0
movzx eax, byte [edx + 0xd]
mov byte [edx + ecx + 0xd], al
mov word [esi + ecx*2 + 0x1a], 0
movzx eax, byte [edx + 0xe]
mov byte [edx + ecx + 0xe], al
mov word [esi + ecx*2 + 0x1c], 0
movzx eax, byte [edx + 0xf]
mov byte [edx + ecx + 0xf], al
mov word [esi + ecx*2 + 0x1e], 0
movzx eax, byte [edx + 0x10]
mov byte [edx + ecx + 0x10], al
mov word [esi + ecx*2 + 0x20], 0
movzx eax, byte [edx + 0x11]
mov byte [edx + ecx + 0x11], al
mov word [esi + ecx*2 + 0x22], 0
movzx eax, byte [edx + 0x12]
mov byte [edx + ecx + 0x12], al
mov word [esi + ecx*2 + 0x24], 0
movzx eax, byte [edx + 0x13]
mov byte [edx + ecx + 0x13], al
mov word [esi + ecx*2 + 0x26], 0
movzx eax, byte [edx + 0x14]
mov byte [edx + ecx + 0x14], al
mov word [esi + ecx*2 + 0x28], 0
movzx eax, byte [edx + 0x15]
mov byte [edx + ecx + 0x15], al
mov word [esi + ecx*2 + 0x2a], 0
movzx eax, byte [edx + 0x16]
mov byte [edx + ecx + 0x16], al
mov word [esi + ecx*2 + 0x2c], 0
movzx eax, byte [edx + 0x17]
mov byte [edx + ecx + 0x17], al
mov word [esi + ecx*2 + 0x2e], 0
movzx eax, byte [edx + 0x18]
mov byte [edx + ecx + 0x18], al
mov word [esi + ecx*2 + 0x30], 0
movzx eax, byte [edx + 0x19]
mov byte [edx + ecx + 0x19], al
mov word [esi + ecx*2 + 0x32], 0
movzx eax, byte [edx + 0x1a]
mov byte [edx + ecx + 0x1a], al
mov word [esi + ecx*2 + 0x34], 0
movzx eax, byte [edx + 0x1b]
mov byte [edx + ecx + 0x1b], al
mov word [esi + ecx*2 + 0x36], 0
movzx eax, byte [edx + 0x1c]
mov byte [edx + ecx + 0x1c], al
mov word [esi + ecx*2 + 0x38], 0
movzx eax, byte [edx + 0x1d]
mov byte [edx + ecx + 0x1d], al
mov word [esi + ecx*2 + 0x3a], 0
movzx eax, byte [edx + 0x1e]
mov byte [edx + ecx + 0x1e], al
mov word [esi + ecx*2 + 0x3c], 0
movzx eax, byte [edx + 0x1f]
mov byte [edx + ecx + 0x1f], al
mov word [esi + ecx*2 + 0x3e], 0
movzx eax, byte [edx + 0x20]
mov byte [edx + ecx + 0x20], al
mov word [esi + ecx*2 + 0x40], 0
movzx eax, byte [edx + 0x21]
mov byte [edx + ecx + 0x21], al
mov word [esi + ecx*2 + 0x42], 0
cmp dword [esp + 0x44], 3
jle 0x61e3a6
push 2
call dword [0x71401c]
add esp, 4
push eax
push 1
push 0x1b
push str.________bucket_sorting_..._n
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov edx, dword [esp + 4]
mov eax, dword [edx]
xor ecx, ecx
nop
add eax, dword [edx + ecx*4 + 4]
mov dword [edx + ecx*4 + 4], eax
add eax, dword [edx + ecx*4 + 8]
mov dword [edx + ecx*4 + 8], eax
add eax, dword [edx + ecx*4 + 0xc]
mov dword [edx + ecx*4 + 0xc], eax
add eax, dword [edx + ecx*4 + 0x10]
mov dword [edx + ecx*4 + 0x10], eax
add ecx, 4
cmp ecx, 0x10000
jne 0x61e3b0
mov eax, dword [esp + 0x28]
movzx ecx, byte [eax]
shl ecx, 8
dec eax
mov ebx, 3
mov edi, 0xffffffff
mov dword [esp], 0xfffffffc
mov dword [esp + 8], 0xfffffffd
mov dword [esp + 0x10], 0xfffffffe
mov ebp, dword [esp + 0x18]
nop dword [eax + eax]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], edi
lea ebx, [edi + ebp]
movzx edx, byte [eax + ebp]
shld dx, cx, 8
movzx ecx, dx
mov esi, dword [esp + 4]
mov edx, dword [esi + ecx*4]
lea edi, [edx - 1]
mov dword [esi + ecx*4], edi
mov edi, dword [esp + 0x14]
mov dword [edi + edx*4 - 4], ebx
movzx edx, byte [eax + ebp - 1]
shrd cx, dx, 8
mov edx, dword [esp + 0x10]
add edx, ebp
mov dword [esp + 0x2c], edx
movzx ecx, cx
mov edi, dword [esi + ecx*4]
lea ebx, [edi - 1]
mov dword [esi + ecx*4], ebx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
mov dword [edx + edi*4 - 4], ebx
mov edi, dword [esp + 8]
add edi, ebp
mov dword [esp + 0x2c], edi
movzx edi, byte [eax + ebp - 2]
shrd cx, di, 8
movzx ecx, cx
mov edi, dword [esi + ecx*4]
lea ebx, [edi - 1]
mov dword [esi + ecx*4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [edx + edi*4 - 4], ebx
movzx edx, byte [eax + ebp - 3]
shrd cx, dx, 8
movzx edx, cx
mov edi, dword [esi + edx*4]
lea ebx, [edi - 1]
mov dword [esi + edx*4], ebx
mov ebx, dword [esp + 0x24]
mov esi, dword [esp]
lea edx, [ebp + esi]
mov eax, dword [esp + 0x14]
mov dword [eax + edi*4 - 4], edx
mov edi, dword [esp + 0x30]
lea edx, [ebx + ebp]
add edx, 0xfffffffc
add ebx, 0xfffffffc
add edi, 0xfffffffc
add esi, 0xfffffffc
mov dword [esp], esi
mov eax, dword [esp + 0x20]
add eax, 0xfffffffc
add dword [esp + 8], 0xfffffffc
add dword [esp + 0x10], 0xfffffffc
cmp edx, 6
ja 0x61e410
add ebx, dword [esp + 0x18]
cmp ebx, 4
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 4]
jb 0x61e537
add edi, dword [esp + 0x18]
nop word cs:[eax + eax]
movzx edx, byte [ebp + edi]
shrd cx, dx, 8
movzx edx, cx
mov esi, dword [ebx + edx*4]
mov eax, edi
lea edi, [esi - 1]
mov dword [ebx + edx*4], edi
mov edx, dword [esp + 0x14]
mov edi, eax
mov dword [edx + esi*4 - 4], eax
add edi, 0xffffffff
jb 0x61e510
xorps xmm0, xmm0
movups xmmword [esp + 0x570], xmm0
movups xmmword [esp + 0x560], xmm0
movups xmmword [esp + 0x550], xmm0
movups xmmword [esp + 0x540], xmm0
movups xmmword [esp + 0x530], xmm0
movups xmmword [esp + 0x520], xmm0
movups xmmword [esp + 0x510], xmm0
movups xmmword [esp + 0x500], xmm0
movups xmmword [esp + 0x4f0], xmm0
movups xmmword [esp + 0x4e0], xmm0
movups xmmword [esp + 0x4d0], xmm0
movups xmmword [esp + 0x4c0], xmm0
movups xmmword [esp + 0x4b0], xmm0
movups xmmword [esp + 0x4a0], xmm0
movups xmmword [esp + 0x490], xmm0
movups xmmword [esp + 0x480], xmm0
movaps xmm0, xmmword [0x6ec240]
movups xmmword [esp + 0x80], xmm0
movaps xmm0, xmmword [0x6ec250]
movups xmmword [esp + 0x90], xmm0
movaps xmm0, xmmword [0x6ec260]
movups xmmword [esp + 0xa0], xmm0
movaps xmm0, xmmword [0x6ec270]
movups xmmword [esp + 0xb0], xmm0
movaps xmm0, xmmword [0x6ec280]
movups xmmword [esp + 0xc0], xmm0
movaps xmm0, xmmword [0x6ec290]
movups xmmword [esp + 0xd0], xmm0
movaps xmm0, xmmword [0x6ec2a0]
movups xmmword [esp + 0xe0], xmm0
movaps xmm0, xmmword [0x6ec2b0]
movups xmmword [esp + 0xf0], xmm0
movaps xmm0, xmmword [str._________._0123456789:_____ABCDEFGHIJKLMNOPQRSTUVWXYZ____abcdefghijklmnopqrstuvwxyz]
movups xmmword [esp + 0x100], xmm0
movaps xmm0, xmmword [0x6ec2d0]
movups xmmword [esp + 0x110], xmm0
movaps xmm0, xmmword [0x6ec2e0]
movups xmmword [esp + 0x120], xmm0
movaps xmm0, xmmword [0x6ec2f0]
movups xmmword [esp + 0x130], xmm0
movaps xmm0, xmmword [0x6ec300]
movups xmmword [esp + 0x140], xmm0
movaps xmm0, xmmword [0x6ec310]
movups xmmword [esp + 0x150], xmm0
movaps xmm0, xmmword [0x6ec320]
movups xmmword [esp + 0x160], xmm0
movaps xmm0, xmmword [0x6ec330]
movups xmmword [esp + 0x170], xmm0
movaps xmm0, xmmword [0x6ec340]
movups xmmword [esp + 0x180], xmm0
movaps xmm0, xmmword [0x6ec350]
movups xmmword [esp + 0x190], xmm0
movaps xmm0, xmmword [0x6ec360]
movups xmmword [esp + 0x1a0], xmm0
movaps xmm0, xmmword [0x6ec370]
movups xmmword [esp + 0x1b0], xmm0
movaps xmm0, xmmword [0x6ec380]
movups xmmword [esp + 0x1c0], xmm0
movaps xmm0, xmmword [0x6ec390]
movups xmmword [esp + 0x1d0], xmm0
movaps xmm0, xmmword [0x6ec3a0]
movups xmmword [esp + 0x1e0], xmm0
movaps xmm0, xmmword [0x6ec3b0]
movups xmmword [esp + 0x1f0], xmm0
movaps xmm0, xmmword [0x6ec3c0]
movups xmmword [esp + 0x200], xmm0
movaps xmm0, xmmword [0x6ec3d0]
movups xmmword [esp + 0x210], xmm0
movaps xmm0, xmmword [0x6ec3e0]
movups xmmword [esp + 0x220], xmm0
movaps xmm0, xmmword [0x6ec3f0]
movups xmmword [esp + 0x230], xmm0
movaps xmm0, xmmword [0x6ec400]
movups xmmword [esp + 0x240], xmm0
movaps xmm0, xmmword [0x6ec410]
movups xmmword [esp + 0x250], xmm0
movaps xmm0, xmmword [0x6ec420]
movups xmmword [esp + 0x260], xmm0
movaps xmm0, xmmword [0x6ec430]
movups xmmword [esp + 0x270], xmm0
movaps xmm0, xmmword [0x6ec440]
movups xmmword [esp + 0x280], xmm0
movaps xmm0, xmmword [0x6ec450]
movups xmmword [esp + 0x290], xmm0
movaps xmm0, xmmword [0x6ec460]
movups xmmword [esp + 0x2a0], xmm0
movaps xmm0, xmmword [0x6ec470]
movups xmmword [esp + 0x2b0], xmm0
movaps xmm0, xmmword [0x6ec480]
movups xmmword [esp + 0x2c0], xmm0
movaps xmm0, xmmword [0x6ec490]
movups xmmword [esp + 0x2d0], xmm0
movaps xmm0, xmmword [0x6ec4a0]
movups xmmword [esp + 0x2e0], xmm0
movaps xmm0, xmmword [0x6ec4b0]
movups xmmword [esp + 0x2f0], xmm0
movaps xmm0, xmmword [0x6ec4c0]
movups xmmword [esp + 0x300], xmm0
movaps xmm0, xmmword [0x6ec4d0]
movups xmmword [esp + 0x310], xmm0
movaps xmm0, xmmword [0x6ec4e0]
movups xmmword [esp + 0x320], xmm0
movaps xmm0, xmmword [0x6ec4f0]
movups xmmword [esp + 0x330], xmm0
movaps xmm0, xmmword [0x6ec500]
movups xmmword [esp + 0x340], xmm0
movaps xmm0, xmmword [0x6ec510]
movups xmmword [esp + 0x350], xmm0
movaps xmm0, xmmword [0x6ec520]
movups xmmword [esp + 0x360], xmm0
movaps xmm0, xmmword [0x6ec530]
movups xmmword [esp + 0x370], xmm0
movaps xmm0, xmmword [0x6ec540]
movups xmmword [esp + 0x380], xmm0
movaps xmm0, xmmword [0x6ec550]
movups xmmword [esp + 0x390], xmm0
movaps xmm0, xmmword [0x6ec560]
movups xmmword [esp + 0x3a0], xmm0
movaps xmm0, xmmword [0x6ec570]
movups xmmword [esp + 0x3b0], xmm0
movaps xmm0, xmmword [0x6ec580]
movups xmmword [esp + 0x3c0], xmm0
movaps xmm0, xmmword [0x6ec590]
movups xmmword [esp + 0x3d0], xmm0
movaps xmm0, xmmword [0x6ec5a0]
movups xmmword [esp + 0x3e0], xmm0
movaps xmm0, xmmword [0x6ec5b0]
movups xmmword [esp + 0x3f0], xmm0
movaps xmm0, xmmword [0x6ec5c0]
movups xmmword [esp + 0x400], xmm0
movaps xmm0, xmmword [0x6ec5d0]
movups xmmword [esp + 0x410], xmm0
movaps xmm0, xmmword [0x6ec5e0]
movups xmmword [esp + 0x420], xmm0
movaps xmm0, xmmword [0x6ec5f0]
movups xmmword [esp + 0x430], xmm0
movaps xmm0, xmmword [0x6ec600]
movups xmmword [esp + 0x440], xmm0
movaps xmm0, xmmword [0x6ec610]
movups xmmword [esp + 0x450], xmm0
movaps xmm0, xmmword [0x6ec620]
movups xmmword [esp + 0x460], xmm0
movaps xmm0, xmmword [0x6ec630]
movups xmmword [esp + 0x470], xmm0
mov eax, 0x79
jmp 0x61e99f
mov dword [esp + edx*4 + 0x80], ecx
inc eax
cmp eax, 0x100
je 0x61ea1c
mov ecx, dword [esp + eax*4 + 0x80]
mov edx, ecx
shl edx, 0xa
mov ebp, dword [esp + 4]
mov esi, dword [ebp + edx + 0x400]
sub esi, dword [ebp + edx]
mov edi, dword [esp + eax*4 - 0x164]
mov edx, edi
shl edx, 0xa
mov ebx, dword [ebp + edx + 0x400]
sub ebx, dword [ebp + edx]
mov edx, eax
cmp ebx, esi
jbe 0x61e990
lea edx, [eax - 0x79]
mov dword [esp + eax*4 + 0x80], edi
cmp eax, 0xf2
jb 0x61e990
mov ebx, dword [esp + eax*4 - 0x348]
mov dword [esp], ebx
shl ebx, 0xa
mov edi, dword [esp + 4]
mov ebp, dword [edi + ebx + 0x400]
sub ebp, dword [edi + ebx]
cmp ebp, esi
jbe 0x61e990
lea edx, [eax - 0xf2]
mov esi, dword [esp]
mov dword [esp + eax*4 - 0x164], esi
jmp 0x61e990
mov eax, 0x28
jmp 0x61ea43
mov dword [esp + edx*4 + 0x80], ecx
inc eax
cmp eax, 0x100
je 0x61eba8
mov ecx, dword [esp + eax*4 + 0x80]
mov edx, ecx
shl edx, 0xa
mov ebp, dword [esp + 4]
mov esi, dword [ebp + edx + 0x400]
sub esi, dword [ebp + edx]
mov edi, dword [esp + eax*4 - 0x20]
mov edx, edi
shl edx, 0xa
mov ebx, dword [ebp + edx + 0x400]
sub ebx, dword [ebp + edx]
mov edx, eax
cmp ebx, esi
jbe 0x61ea30
lea edx, [eax - 0x28]
mov dword [esp + eax*4 + 0x80], edi
cmp eax, 0x50
jb 0x61ea30
mov ebx, dword [esp + eax*4 - 0xc0]
mov dword [esp], ebx
shl ebx, 0xa
mov edi, dword [esp + 4]
mov ebp, dword [edi + ebx + 0x400]
sub ebp, dword [edi + ebx]
cmp ebp, esi
jbe 0x61ea30
lea edx, [eax - 0x50]
mov edi, dword [esp]
mov dword [esp + eax*4 - 0x20], edi
cmp eax, 0x78
jb 0x61ea30
mov ebx, dword [esp + eax*4 - 0x160]
mov dword [esp], ebx
shl ebx, 0xa
mov edi, dword [esp + 4]
mov ebp, dword [edi + ebx + 0x400]
sub ebp, dword [edi + ebx]
cmp ebp, esi
jbe 0x61ea30
lea edx, [eax - 0x78]
mov edi, dword [esp]
mov dword [esp + eax*4 - 0xc0], edi
cmp eax, 0xa0
jb 0x61ea30
mov ebx, dword [esp + eax*4 - 0x200]
mov dword [esp], ebx
shl ebx, 0xa
mov edi, dword [esp + 4]
mov ebp, dword [edi + ebx + 0x400]
sub ebp, dword [edi + ebx]
cmp ebp, esi
jbe 0x61ea30
lea edx, [eax - 0xa0]
mov edi, dword [esp]
mov dword [esp + eax*4 - 0x160], edi
cmp eax, 0xc8
jb 0x61ea30
mov ebx, dword [esp + eax*4 - 0x2a0]
mov dword [esp], ebx
shl ebx, 0xa
mov edi, dword [esp + 4]
mov ebp, dword [edi + ebx + 0x400]
sub ebp, dword [edi + ebx]
cmp ebp, esi
jbe 0x61ea30
lea edx, [eax - 0xc8]
mov edi, dword [esp]
mov dword [esp + eax*4 - 0x200], edi
cmp eax, 0xf0
jb 0x61ea30
mov ebx, dword [esp + eax*4 - 0x340]
mov dword [esp], ebx
shl ebx, 0xa
mov edi, dword [esp + 4]
mov ebp, dword [edi + ebx + 0x400]
sub ebp, dword [edi + ebx]
cmp ebp, esi
jbe 0x61ea30
lea edx, [eax - 0xf0]
mov esi, dword [esp]
mov dword [esp + eax*4 - 0x2a0], esi
jmp 0x61ea30
mov eax, 0xd
jmp 0x61ebc2
mov ecx, dword [esp]
mov dword [esp + edx*4 + 0x80], ecx
inc eax
cmp eax, 0x100
je 0x61ec0f
mov edx, dword [esp + eax*4 + 0x80]
mov dword [esp], edx
shl edx, 0xa
mov edi, dword [esp + 4]
mov esi, dword [edi + edx + 0x400]
sub esi, dword [edi + edx]
mov edx, eax
nop
mov edi, dword [esp + edx*4 + 0x4c]
mov ebx, edi
shl ebx, 0xa
mov ecx, dword [esp + 4]
mov ebp, dword [ecx + ebx + 0x400]
sub ebp, dword [ecx + ebx]
cmp ebp, esi
jbe 0x61ebb0
mov dword [esp + edx*4 + 0x80], edi
add edx, 0xfffffff3
lea edi, [edx + 0xd]
cmp edi, 0x19
jg 0x61ebe0
jmp 0x61ebb0
mov eax, 4
jmp 0x61ec32
mov ecx, dword [esp]
mov dword [esp + edx*4 + 0x80], ecx
inc eax
cmp eax, 0x100
je 0x61ec7f
mov edx, dword [esp + eax*4 + 0x80]
mov dword [esp], edx
shl edx, 0xa
mov edi, dword [esp + 4]
mov esi, dword [edi + edx + 0x400]
sub esi, dword [edi + edx]
mov edx, eax
nop
mov edi, dword [esp + edx*4 + 0x70]
mov ebx, edi
shl ebx, 0xa
mov ecx, dword [esp + 4]
mov ebp, dword [ecx + ebx + 0x400]
sub ebp, dword [ecx + ebx]
cmp ebp, esi
jbe 0x61ec20
mov dword [esp + edx*4 + 0x80], edi
add edx, 0xfffffffc
lea edi, [edx + 4]
cmp edi, 7
jg 0x61ec50
jmp 0x61ec20
mov eax, 1
jmp 0x61eca2
mov ecx, dword [esp]
mov dword [esp + edx*4 + 0x80], ecx
inc eax
cmp eax, 0x100
je 0x61ecef
mov edx, dword [esp + eax*4 + 0x80]
mov dword [esp], edx
shl edx, 0xa
mov edi, dword [esp + 4]
mov esi, dword [edi + edx + 0x400]
sub esi, dword [edi + edx]
mov edx, eax
nop
mov edi, dword [esp + edx*4 + 0x7c]
mov ebx, edi
shl ebx, 0xa
mov ecx, dword [esp + 4]
mov ebp, dword [ecx + ebx + 0x400]
sub ebp, dword [ecx + ebx]
cmp ebp, esi
jbe 0x61ec90
mov dword [esp + edx*4 + 0x80], edi
dec edx
lea edi, [edx + 1]
cmp edi, 1
jg 0x61ecc0
xor edx, edx
jmp 0x61ec90
mov ebp, dword [esp + 0x14]
lea eax, [ebp + 4]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 4]
lea ecx, [eax + 0x404]
mov dword [esp + 0x6c], ecx
lea ecx, [eax + 0x400]
mov dword [esp + 0x68], ecx
xor esi, esi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], esi
mov esi, dword [esp + esi*4 + 0x80]
mov edx, esi
shl edx, 8
xor ecx, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x38], esi
jmp 0x61ed85
mov esi, dword [esp + 0x3c]
test esi, esi
mov eax, dword [esp + 4]
js 0x61f8e2
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x60]
add ecx, edx
inc ecx
mov dword [esp + 0x4c], ecx
mov eax, dword [eax + edi*4]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x38]
or eax, 0x200000
mov ecx, dword [esp + 4]
mov dword [ecx + edi*4], eax
mov eax, ecx
mov ecx, dword [esp + 0x64]
inc ecx
cmp ecx, 0x100
je 0x61f5d0
cmp ecx, esi
je 0x61ed78
mov dword [esp + 0x64], ecx
lea edi, [ecx + edx]
mov ecx, eax
mov eax, dword [eax + edi*4]
test eax, 0x200000
jne 0x61ed66
mov edx, eax
and edx, 0xffdfffff
mov esi, dword [ecx + edi*4 + 4]
mov ecx, 0xffdfffff
and esi, ecx
lea ebx, [esi - 1]
mov dword [esp + 0x50], edx
mov ecx, ebx
mov dword [esp + 0x60], ebx
cmp ebx, edx
jle 0x61ed5e
cmp dword [esp + 0x44], 4
jl 0x61edf1
push 2
call dword [0x71401c]
add esp, 4
sub esi, dword [esp + 0x50]
push esi
push dword [esp + 0x50]
push dword [esp + 0x6c]
push dword [esp + 0x44]
push str.________qsort__0x_x__0x_x____done__d___this__d_n
push eax
call fcn.006205f0
add esp, 0x18
mov eax, dword [esp + 0x50]
mov dword [esp + 0x8a0], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x710], eax
mov dword [esp + 0x580], 2
mov eax, 1
mov dword [esp + 0x7c], edi
jmp 0x61ee3e
mov esi, dword [esp + 0x3c]
test esi, esi
js 0x61f8de
mov ecx, dword [esp + 0x1c]
mov eax, ecx
test ecx, ecx
mov edi, dword [esp + 0x7c]
jle 0x61ed38
lea ecx, [eax - 1]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], eax
cmp eax, 0x62
jb 0x61ee61
nop
push 0x3e9
call fcn.00402750
mov eax, dword [esp + 0x34]
add esp, 4
mov esi, dword [esp + eax*4 + 0x89c]
mov ebx, dword [esp + eax*4 + 0x70c]
mov ecx, dword [esp + eax*4 + 0x57c]
mov eax, ebx
mov edx, esi
mov dword [esp + 0x20], esi
sub eax, esi
cmp eax, 0x14
mov edx, ecx
mov dword [esp], ecx
mov dword [esp + 0x2c], ebx
jl 0x61f080
cmp ecx, 0xf
jge 0x61f080
mov edx, dword [esp + 0x20]
mov eax, dword [ebp + edx*4]
add eax, ecx
mov esi, dword [esp + 0x28]
mov edi, ecx
movzx ecx, byte [esi + eax]
mov eax, dword [ebp + ebx*4]
add eax, edi
movzx eax, byte [esi + eax]
add edx, ebx
and edx, 0xfffffffe
mov edx, dword [ebp + edx*2]
add edx, edi
cmp cl, al
mov edi, ebx
mov ebx, eax
cmova ebx, ecx
cmovb eax, ecx
movzx ecx, byte [esi + edx]
cmp bl, cl
jbe 0x61eee3
movzx edx, al
movzx ebx, cl
cmp al, cl
cmova ebx, edx
mov dword [esp + 8], edi
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov ecx, edi
cmp edx, ecx
jle 0x61ef00
mov esi, edx
jmp 0x61ef66
cmp edx, ecx
mov esi, ecx
cmovg esi, edx
inc esi
mov edi, edx
nop word [eax + eax]
mov edx, dword [ebp + edi*4]
mov eax, dword [esp]
lea ebp, [edx + eax]
mov eax, dword [esp + 0x28]
cmp byte [eax + ebp], bl
je 0x61ef30
ja 0x61ef60
inc edi
cmp esi, edi
mov ebp, dword [esp + 0x14]
jne 0x61ef10
jmp 0x61ef66
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + eax*4]
mov dword [ebp + edi*4], esi
mov dword [ebp + eax*4], edx
inc eax
mov dword [esp + 0x10], eax
lea edx, [edi + 1]
cmp edi, ecx
jl 0x61ef00
inc edi
mov esi, edi
jmp 0x61ef66
mov esi, edi
mov ebp, dword [esp + 0x14]
cmp esi, ecx
jg 0x61f006
mov edi, ecx
mov edx, dword [ebp + edi*4]
mov eax, dword [esp]
lea ebp, [edx + eax]
mov eax, dword [esp + 0x28]
cmp byte [eax + ebp], bl
je 0x61efa0
jb 0x61efd0
lea edx, [edi - 1]
cmp esi, edi
mov edi, edx
mov ebp, dword [esp + 0x14]
jl 0x61ef70
jmp 0x61f000
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 8]
mov ecx, dword [ebp + eax*4]
mov dword [ebp + edi*4], ecx
mov dword [ebp + eax*4], edx
dec eax
mov dword [esp + 8], eax
lea ecx, [edi - 1]
cmp esi, edi
jl 0x61ef6e
jmp 0x61f031
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebp + esi*4]
mov dword [ebp + esi*4], edx
mov dword [ebp + edi*4], ecx
inc esi
dec edi
mov ecx, edi
mov edx, esi
cmp edx, ecx
jle 0x61ef00
jmp 0x61eef5
cmp ecx, esi
cmovge ecx, esi
dec ecx
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x10]
cmp eax, ebx
jge 0x61f040
mov eax, dword [esp]
inc eax
mov ecx, dword [esp + 0x30]
mov dword [esp + ecx*4 + 0x57c], eax
mov eax, ecx
cmp eax, 0x62
jae 0x61ee50
jmp 0x61ee61
dec edi
mov ecx, edi
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x10]
cmp eax, ebx
jl 0x61f012
mov dword [esp + 8], eax
mov edx, ebx
sub edx, dword [esp + 0x20]
mov ebp, esi
sub ebp, ebx
cmp edx, ebp
cmovl ebp, edx
test ebp, ebp
jle 0x61f395
mov eax, esi
sub eax, ebp
cmp ebp, 0xc
jae 0x61f2b8
mov edi, dword [esp + 0x20]
jmp 0x61f360
test eax, eax
jle 0x61ee20
mov edx, 0xffffffff
nop dword [eax]
mov ecx, edx
inc edx
cmp dword [ecx*4 + 0x6ec78c], eax
jle 0x61f090
test edx, edx
mov ecx, dword [esp]
je 0x61ee20
mov eax, dword [esp + 0x20]
lea eax, [eax*4]
add eax, ebp
mov dword [esp + 0x78], eax
jmp 0x61f0cf
cmp dword [esp + 0x54], 1
mov edx, dword [esp + 0x48]
jle 0x61ee20
lea eax, [edx - 1]
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], edx
mov edx, dword [edx*4 + 0x6ec784]
mov eax, dword [esp + 0x20]
lea ebx, [edx + eax]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x30], edx
lea edx, [eax + edx*4]
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp + 0x24], ebx
jmp 0x61f13c
add edi, ebx
mov eax, edi
mov ecx, dword [esp]
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov dword [ebp + eax*4], edx
add ebx, 3
mov esi, dword [esp + 0x3c]
add dword [esp + 0x10], 0xc
add dword [esp + 8], 0xc
test esi, esi
js 0x61f8de
cmp ebx, dword [esp + 0x2c]
jg 0x61f0c0
mov eax, dword [ebp + ebx*4]
mov dword [esp + 0xc], eax
lea esi, [eax + ecx]
xor edi, edi
nop word cs:[eax + eax]
mov eax, dword [esp + 8]
mov ebp, dword [eax + edi*4]
add ecx, ebp
mov edx, esi
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x3c]
push dword [esp + 0x34]
call fcn.00620610
add esp, 0x10
test al, al
je 0x61f1c0
mov eax, dword [esp + 0x10]
mov dword [eax + edi*4], ebp
sub edi, dword [esp + 0x30]
lea eax, [ebx + edi]
cmp eax, dword [esp + 0x24]
mov ecx, dword [esp]
jge 0x61f160
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov dword [ebp + eax*4], edx
cmp ebx, dword [esp + 0x2c]
jl 0x61f1dd
jmp 0x61f0c0
add edi, ebx
mov eax, edi
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp]
mov edx, dword [esp + 0xc]
mov dword [ebp + eax*4], edx
cmp ebx, dword [esp + 0x2c]
jge 0x61f0c0
mov eax, dword [ebp + ebx*4 + 4]
mov dword [esp + 0xc], eax
lea esi, [eax + ecx]
mov edi, 1
nop dword [eax]
mov eax, dword [esp + 8]
mov ebp, dword [eax + edi*4]
add ecx, ebp
mov edx, esi
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x3c]
push dword [esp + 0x34]
call fcn.00620610
add esp, 0x10
test al, al
je 0x61f240
mov eax, dword [esp + 0x10]
mov dword [eax + edi*4], ebp
sub edi, dword [esp + 0x30]
lea eax, [ebx + edi]
cmp eax, dword [esp + 0x24]
mov ecx, dword [esp]
jge 0x61f1f0
jmp 0x61f247
add edi, ebx
mov eax, edi
mov ecx, dword [esp]
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov dword [ebp + eax*4], edx
lea eax, [ebx + 2]
cmp eax, dword [esp + 0x2c]
jg 0x61f0c0
mov eax, dword [ebp + ebx*4 + 8]
mov dword [esp + 0xc], eax
lea esi, [eax + ecx]
mov edi, 2
mov eax, dword [esp + 8]
mov ebp, dword [eax + edi*4]
add ecx, ebp
mov edx, esi
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x3c]
push dword [esp + 0x34]
call fcn.00620610
add esp, 0x10
test al, al
je 0x61f110
mov eax, dword [esp + 0x10]
mov dword [eax + edi*4], ebp
sub edi, dword [esp + 0x30]
lea eax, [ebx + edi]
cmp eax, dword [esp + 0x24]
mov ecx, dword [esp]
jge 0x61f270
jmp 0x61f117
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
lea edx, [ebx + eax*4]
lea eax, [ebp*4]
lea edi, [esi*4]
mov dword [esp + 0x1c], eax
sub edi, eax
add edi, ebx
mov dword [esp + 0x24], edi
lea edi, [ebx + esi*4]
mov dword [esp + 0x48], edx
cmp edx, edi
mov eax, dword [esp + 0x20]
jae 0x61f307
mov edx, dword [esp + 0x1c]
lea edx, [edx + eax*4]
add edx, ebx
cmp dword [esp + 0x24], edx
jae 0x61f307
mov edi, eax
mov eax, dword [esp + 0xc]
jmp 0x61f360
mov edi, ebp
and edi, 0xfffffffc
mov dword [esp + 0x1c], ebp
and ebp, 3
add dword [esp + 0xc], edi
add eax, edi
mov dword [esp + 0x54], eax
xor ebx, ebx
mov eax, dword [esp + 0x48]
nop word cs:[eax + eax]
movups xmm0, xmmword [eax + ebx*4]
mov edx, dword [esp + 0x24]
movups xmm1, xmmword [edx + ebx*4]
movups xmmword [eax + ebx*4], xmm1
movups xmmword [edx + ebx*4], xmm0
add ebx, 4
cmp edi, ebx
jne 0x61f330
cmp dword [esp + 0x1c], edi
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x54]
je 0x61f395
nop dword [eax]
inc ebp
mov edx, dword [esp + 0x14]
nop word cs:[eax + eax]
mov ebx, dword [edx + edi*4]
mov dword [esp + 0x24], ebx
mov ebx, eax
mov eax, edi
mov edi, dword [edx + ebx*4]
mov dword [edx + eax*4], edi
mov edi, eax
mov eax, ebx
mov ebx, dword [esp + 0x24]
mov dword [edx + eax*4], ebx
dec ebp
add edx, 4
cmp ebp, 1
ja 0x61f370
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 8]
sub ebx, eax
sub eax, ecx
cmp ebx, eax
mov dword [esp + 8], eax
cmovge ebx, eax
test ebx, ebx
jle 0x61f487
mov edi, dword [esp + 0x2c]
mov eax, edi
sub eax, ebx
cmp ebx, 0xc
jae 0x61f3c6
mov edi, esi
jmp 0x61f460
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x14]
lea eax, [esi*4]
add eax, ebp
mov dword [esp + 0x1c], eax
lea edx, [ebx*4]
lea ecx, [edi*4]
sub ecx, edx
mov eax, dword [esp + 0x74]
add ecx, eax
mov dword [esp + 0x24], ecx
lea edi, [eax + edi*4]
mov ecx, dword [esp + 0x1c]
cmp ecx, edi
jae 0x61f413
lea edx, [edx + esi*4]
add edx, ebp
cmp dword [esp + 0x24], edx
jae 0x61f413
mov edi, esi
mov eax, dword [esp + 0xc]
jmp 0x61f460
mov edx, ebx
and edx, 0xfffffffc
mov dword [esp + 0x48], ebx
and ebx, 3
mov eax, dword [esp + 0xc]
add eax, edx
mov dword [esp + 0xc], edx
lea edi, [esi + edx]
xor ebp, ebp
nop
movups xmm0, xmmword [ecx + ebp*4]
mov edx, dword [esp + 0x24]
movups xmm1, xmmword [edx + ebp*4]
movups xmmword [ecx + ebp*4], xmm1
movups xmmword [edx + ebp*4], xmm0
add ebp, 4
cmp dword [esp + 0xc], ebp
jne 0x61f430
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x48], ecx
je 0x61f487
nop word [eax + eax]
inc ebx
mov edx, dword [esp + 0x14]
nop word cs:[eax + eax]
mov ebp, dword [edx + edi*4]
mov ecx, dword [edx + eax*4 + 4]
mov dword [edx + edi*4], ecx
mov dword [edx + eax*4 + 4], ebp
dec ebx
add edx, 4
cmp ebx, 1
ja 0x61f470
mov ecx, dword [esp + 0x20]
mov edi, ecx
sub edi, dword [esp + 0x10]
lea ebp, [edi + esi]
dec ebp
mov ebx, dword [esp + 0x2c]
mov eax, ebx
sub eax, dword [esp + 8]
mov dword [esp + 0x24], eax
lea edx, [eax + 1]
mov dword [esp + 0xc], ebp
mov eax, ebp
sub eax, ecx
mov ebp, ebx
sub ebp, edx
cmp eax, ebp
jge 0x61f4d0
mov dword [esp + 0x10], edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
jmp 0x61f4e6
mov eax, ebp
mov dword [esp + 8], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x2c], ecx
add edi, esi
mov esi, dword [esp]
lea ebx, [esi + 1]
mov edx, dword [esp + 0x24]
mov ecx, edx
sub ecx, edi
cmp eax, ecx
mov ebp, dword [esp + 0x14]
jge 0x61f520
mov dword [esp + 0x20], ebx
mov eax, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], esi
jmp 0x61f53a
mov ecx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
mov edi, esi
sub edi, ebx
cmp edi, ecx
jge 0x61f560
mov dword [esp + 0x10], ebx
mov ebx, esi
mov edi, dword [esp]
mov ecx, dword [esp + 0x20]
jmp 0x61f571
mov dword [esp + 0x10], eax
mov eax, ebx
mov ebx, edx
mov edx, esi
mov edi, dword [esp + 0x20]
mov ecx, dword [esp]
mov esi, dword [esp + 0x30]
mov dword [esp + esi*4 + 0x89c], eax
mov dword [esp + esi*4 + 0x70c], edx
mov dword [esp + esi*4 + 0x57c], ecx
mov eax, dword [esp + 0x10]
mov dword [esp + esi*4 + 0x8a0], eax
mov dword [esp + esi*4 + 0x710], ebx
mov dword [esp + esi*4 + 0x580], edi
mov eax, dword [esp + 8]
mov dword [esp + esi*4 + 0x8a4], eax
mov eax, dword [esp + 0xc]
mov dword [esp + esi*4 + 0x714], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0x584], eax
add esi, 2
mov dword [esp + 0x1c], esi
jmp 0x61ee2c
cmp byte [esp + esi + 0x480], 0
je 0x61f5e7
push 0x3ee
call fcn.00402750
add esp, 4
mov ecx, esi
lea esi, [esi*4]
mov eax, dword [esp + 0x6c]
lea eax, [eax + ecx*4]
mov ecx, 1
mov edi, 0xffdfffff
nop word cs:[eax + eax]
mov edx, dword [eax - 0x404]
and edx, edi
mov dword [esp + ecx*4 + 0xe2c], edx
mov edx, dword [eax - 0x400]
and edx, edi
dec edx
mov dword [esp + ecx*4 + 0xa2c], edx
mov edx, dword [eax - 4]
and edx, edi
mov dword [esp + ecx*4 + 0xe30], edx
mov edx, dword [eax]
and edx, edi
dec edx
mov dword [esp + ecx*4 + 0xa30], edx
add eax, 0x800
add ecx, 2
cmp ecx, 0x101
jne 0x61f610
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov ecx, dword [eax + ecx*4]
and ecx, edi
mov eax, dword [esp + 0x38]
mov eax, dword [esp + eax*4 + 0xe30]
jmp 0x61f681
inc ecx
cmp ecx, eax
jge 0x61f6ca
mov edx, dword [ebp + ecx*4]
lea edi, [edx - 1]
sar edi, 0x1f
and edi, dword [esp + 0x18]
add edx, edi
dec edx
mov edi, dword [esp + 0x28]
movzx edi, byte [edi + edx]
cmp byte [esp + edi + 0x480], 0
jne 0x61f680
mov eax, dword [esp + edi*4 + 0xe30]
lea ebx, [eax + 1]
mov dword [esp + edi*4 + 0xe30], ebx
mov dword [ebp + eax*4], edx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + eax*4 + 0xe30]
jmp 0x61f680
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x40]
mov edx, dword [ecx + edx*4 + 0x400]
mov ecx, 0xffdfffff
and edx, ecx
dec edx
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + ecx*4 + 0xa30]
jmp 0x61f6f1
dec edx
cmp edx, ecx
jle 0x61f73e
mov edi, dword [ebp + edx*4]
lea ebx, [edi - 1]
sar ebx, 0x1f
and ebx, dword [esp + 0x18]
add edi, ebx
dec edi
mov ebx, dword [esp + 0x28]
movzx ebx, byte [ebx + edi]
cmp byte [esp + ebx + 0x480], 0
jne 0x61f6f0
mov ecx, dword [esp + ebx*4 + 0xa30]
lea ebp, [ecx - 1]
mov dword [esp + ebx*4 + 0xa30], ebp
mov ebp, dword [esp + 0x14]
mov dword [ebp + ecx*4], edi
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + ecx*4 + 0xa30]
jmp 0x61f6f0
lea edx, [eax - 1]
cmp edx, ecx
je 0x61f75c
test eax, eax
jne 0x61f74f
cmp ecx, dword [esp + 0x58]
je 0x61f75c
push 0x3ef
call fcn.00402750
add esp, 4
add esi, dword [esp + 0x68]
xor eax, eax
nop word cs:[eax + eax]
or byte [esi + eax - 0x3fe], 0x20
or byte [esi + eax + 2], 0x20
add eax, 0x800
cmp eax, 0x40000
jne 0x61f770
mov eax, dword [esp + 0x38]
mov byte [esp + eax + 0x480], 1
mov esi, dword [esp + 0x5c]
cmp esi, 0xfe
ja 0x61f892
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x40]
mov edx, dword [eax + esi*4]
mov ecx, 0xffdfffff
and edx, ecx
mov edi, dword [eax + esi*4 + 0x400]
and edi, ecx
mov ebx, edi
sub ebx, edx
mov ecx, 0xffffffff
nop dword [eax]
inc ecx
mov eax, ebx
sar eax, cl
cmp eax, 0xfffe
jg 0x61f7d0
lea eax, [ebx - 1]
mov dword [esp], eax
test ebx, ebx
jle 0x61f875
mov eax, dword [esp]
mov esi, eax
test bl, 1
je 0x61f81d
mov esi, eax
shr esi, cl
mov edi, dword [ebp + edi*4 - 4]
mov eax, dword [esp + 0x34]
mov word [eax + edi*2], si
cmp edi, 0x21
jg 0x61f815
add edi, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov word [eax + edi*2], si
add ebx, 0xfffffffe
mov esi, ebx
mov eax, dword [esp]
test eax, eax
je 0x61f875
lea edx, [edx*4]
add edx, ebp
jmp 0x61f839
lea edi, [esi + 1]
dec esi
cmp edi, 1
jle 0x61f875
mov edi, esi
shr edi, cl
mov ebx, dword [edx + esi*4]
mov eax, dword [esp + 0x34]
mov word [eax + ebx*2], di
cmp ebx, 0x21
jg 0x61f855
add ebx, dword [esp + 0x18]
mov word [eax + ebx*2], di
mov edi, dword [edx + esi*4 - 4]
dec esi
mov ebx, esi
shr ebx, cl
mov word [eax + edi*2], bx
cmp edi, 0x21
jg 0x61f830
add edi, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov word [eax + edi*2], bx
jmp 0x61f830
mov eax, dword [esp]
sar eax, cl
cmp eax, 0x10000
mov esi, dword [esp + 0x5c]
jl 0x61f892
push 0x3ea
call fcn.00402750
add esp, 4
inc esi
cmp esi, 0x100
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x44]
jne 0x61ed1c
cmp ecx, 3
jle 0x61f93c
push 2
call dword [0x71401c]
add esp, 4
mov edx, dword [esp + 0x18]
mov ecx, edx
mov esi, dword [esp + 0x4c]
sub ecx, esi
push ecx
push esi
push edx
push str._________d_pointers___d_sorted___d_scanned_n
push eax
call fcn.006205f0
add esp, 0x14
mov esi, dword [esp + 0x3c]
jmp 0x61f947
mov eax, dword [esp + 4]
cmp dword [esp + 0x44], 3
jge 0x61f947
test esi, esi
mov esi, dword [esp + 0x1244]
js 0x61f9a3
mov dword [esi + 0x1c], 0xffffffff
mov eax, dword [esi + 0x44]
test eax, eax
jle 0x61f91c
xor ecx, ecx
nop dword [eax + eax]
cmp dword [ebp + ecx*4], 0
je 0x61f92e
inc ecx
cmp eax, ecx
jne 0x61f910
push 0x3eb
call fcn.00402750
add esp, 0x1234
jmp 0x61f937
mov dword [esi + 0x1c], ecx
add esp, 0x1230
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x3c]
cmp dword [esp + 0x44], 3
jl 0x61f8e9
push 2
call dword [0x71401c]
add esp, 4
mov edx, dword [esp + 0x70]
sub edx, esi
cvtsi2ss xmm0, edx
mov ecx, dword [esp + 0x18]
cvtsi2ss xmm1, ecx
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
sub esp, 0x18
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str._______d_work___d_block__ratio__5.2f_n
call fcn.006205f0
mov eax, dword [esp + 0x1c]
add esp, 0x18
test esi, esi
mov esi, dword [esp + 0x1244]
jns 0x61f8f8
mov edi, dword [esp + 0x44]
cmp edi, 2
mov ebx, dword [esp + 0x18]
jl 0x61dfcc
push 2
call dword [0x71401c]
add esp, 4
push eax
push 1
push 0x35
push str.____too_repetitive__using_fallback_sorting_algorithm_n
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x14]
add esp, 0x10
jmp 0x61dfcc