Function at 0x68442ebd
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
mov eax, 0x13bc
call fcn.6844d000
mov ebx, dword [esp + 0x13d0]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x1c8], ecx
mov ecx, dword [esp + 0x13d0]
mov eax, dword [esp + 0x13d0]
mov esi, dword [ecx + 0x44]
mov edx, dword [eax + 0x24]
mov edi, dword [ecx + 0x268]
cmp esi, 0x270f
mov dword [esp + 0x1c4], edx
mov ebx, dword [ecx + 0x18]
mov dword [esp + 0x1c0], esi
mov dword [esp + 0x1bc], edi
mov eax, dword [ecx + 0x30]
jle 0x68442edb
mov edx, dword [esp + 0x1c0]
add edx, 0x22
test dl, 1
je 0x68441aa1
mov edx, dword [esp + 0x1c0]
add edx, 0x23
add edx, dword [esp + 0x1c4]
test eax, eax
mov dword [esp + 0x1b8], edx
jle 0x68442ed1
cmp eax, 0x64
jle 0x68441ac1
mov eax, 0x64
lea esi, [eax - 1]
mov ecx, 0x55555556
mov eax, esi
mov edi, esi
imul ecx
sar edi, 0x1f
sub edx, edi
imul edx, dword [esp + 0x1c0]
cmp dword [esp + 0x1bc], 3
mov dword [esp + 0x1b4], edx
mov dword [esp + 0x1cc], edx
jg 0x68442eb1
mov eax, 0x10000
lea esi, [esi]
mov dword [ebx + eax*4], 0
dec eax
jns 0x68441b00
mov ebp, dword [esp + 0x1c4]
mov eax, dword [esp + 0x1c0]
dec eax
movzx edx, byte [ebp]
shl edx, 8
mov ecx, eax
cmp eax, 2
mov dword [esp + 0x130], eax
jmp 0x68441ba1
mov ebp, dword [esp + 0x1b8]
mov word [ebp + ecx*2], 0
mov esi, dword [esp + 0x1c4]
mov eax, edx
movzx edx, byte [ecx + esi]
shl edx, 8
sar eax, 8
or eax, edx
inc dword [ebx + eax*4]
mov word [ebp + ecx*2 - 2], 0
movzx edi, byte [esi + ecx - 1]
shl edi, 8
sar eax, 8
or eax, edi
inc dword [ebx + eax*4]
mov word [ebp + ecx*2 - 4], 0
movzx edx, byte [esi + ecx - 2]
shl edx, 8
sar eax, 8
or eax, edx
inc dword [ebx + eax*4]
mov word [ebp + ecx*2 - 6], 0
movzx edi, byte [esi + ecx - 3]
mov edx, eax
sar edx, 8
shl edi, 8
or edx, edi
sub ecx, 4
inc dword [ebx + edx*4]
cmp ecx, 2
jg 0x68441b2e
test ecx, ecx
jmp 0x68441bcc
mov ebp, dword [esp + 0x1b8]
mov word [ebp + ecx*2], 0
mov esi, dword [esp + 0x1c4]
movzx eax, byte [ecx + esi]
sar edx, 8
shl eax, 8
or edx, eax
inc dword [ebx + edx*4]
dec ecx
jns 0x68441ba7
mov edi, dword [esp + 0x1c4]
mov eax, dword [esp + 0x1c0]
xor edx, edx
lea ecx, [edi + eax]
mov edi, dword [esp + 0x1c4]
mov al, byte [edx + edi]
mov byte [ecx + edx], al
mov eax, dword [esp + 0x1c0]
lea ebp, [edx + eax]
inc edx
mov esi, dword [esp + 0x1b8]
cmp edx, 0x21
mov word [esi + ebp*2], 0
jle 0x68441be1
cmp dword [esp + 0x1bc], 3
jg 0x684437e0
mov edx, 1
nop
mov esi, dword [ebx + edx*4 - 4]
add dword [ebx + edx*4], esi
inc edx
cmp edx, 0x10000
jle 0x68441c20
mov edx, dword [esp + 0x1c4]
movzx cx, byte [edx]
shl ecx, 8
mov esi, dword [esp + 0x130]
jmp 0x68441cda
mov edx, ecx
mov ecx, dword [esp + 0x1c4]
movzx eax, byte [esi + ecx]
shl eax, 8
shr dx, 8
or edx, eax
movzx edi, dx
mov ebp, dword [ebx + edi*4]
dec ebp
mov dword [ebx + edi*4], ebp
mov edi, dword [esp + 0x1c8]
mov dword [edi + ebp*4], esi
mov ebp, dword [esp + 0x1c4]
movzx ecx, byte [ebp + esi - 1]
shl ecx, 8
shr dx, 8
or edx, ecx
movzx eax, dx
mov ecx, dword [ebx + eax*4]
dec ecx
mov dword [ebx + eax*4], ecx
lea eax, [esi - 1]
mov dword [edi + ecx*4], eax
movzx ecx, byte [ebp + esi - 2]
shl ecx, 8
shr dx, 8
or edx, ecx
movzx eax, dx
mov ecx, dword [ebx + eax*4]
dec ecx
mov dword [ebx + eax*4], ecx
lea eax, [esi - 2]
mov dword [edi + ecx*4], eax
movzx eax, byte [ebp + esi - 3]
mov ecx, edx
shl eax, 8
shr cx, 8
or ecx, eax
movzx edx, cx
mov ebp, dword [ebx + edx*4]
dec ebp
lea eax, [esi - 3]
mov dword [ebx + edx*4], ebp
sub esi, 4
mov dword [edi + ebp*4], eax
cmp esi, 2
jg 0x68441c4a
test esi, esi
jmp 0x68441d11
mov ebp, dword [esp + 0x1c4]
movzx eax, byte [esi + ebp]
shr cx, 8
shl eax, 8
or ecx, eax
movzx edi, cx
mov edx, dword [ebx + edi*4]
dec edx
mov ebp, dword [esp + 0x1c8]
mov dword [ebx + edi*4], edx
mov dword [ebp + edx*4], esi
dec esi
jns 0x68441ce7
xor eax, eax
mov byte [esp + eax + 0xeb0], 0
mov dword [esp + eax*4 + 0xfb0], eax
inc eax
cmp eax, 0xff
jle 0x68441d15
mov dword [esp + 0x1a0], 1
mov ecx, dword [esp + 0x1a0]
lea esi, [ecx + ecx*2 + 1]
cmp esi, 0x100
mov dword [esp + 0x1a0], esi
jle 0x68441d37
mov eax, 0x55555556
imul dword [esp + 0x1a0]
mov edi, dword [esp + 0x1a0]
sar edi, 0x1f
mov esi, edx
sub esi, edi
cmp esi, 0xff
mov dword [esp + 0x19c], esi
mov dword [esp + 0x114], esi
mov dword [esp + 0x1a0], esi
jg 0x68441e1e
mov edx, esi
dec edx
mov dword [esp + 0x198], edx
mov esi, dword [esp + 0x114]
mov ebp, dword [esp + esi*4 + 0xfb0]
mov eax, ebp
shl eax, 0xa
mov dword [esp + 0x1a4], ebp
mov ecx, dword [esp + 0x114]
lea ebp, [eax + ebx]
mov edi, ecx
sub edi, dword [esp + 0x19c]
mov esi, dword [esp + edi*4 + 0xfb0]
mov eax, esi
shl eax, 0xa
mov edx, dword [eax + ebx + 0x400]
sub edx, dword [eax + ebx]
mov eax, dword [ebp + 0x400]
sub eax, dword [ebp]
cmp edx, eax
jbe 0x68441df8
cmp dword [esp + 0x198], edi
mov dword [esp + ecx*4 + 0xfb0], esi
mov ecx, edi
jl 0x68441dba
inc dword [esp + 0x114]
mov edi, dword [esp + 0x1a4]
cmp dword [esp + 0x114], 0xff
mov dword [esp + ecx*4 + 0xfb0], edi
jle 0x68441d96
cmp dword [esp + 0x19c], 1
jne 0x68441d51
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x110], 0
mov ebp, dword [esp + 0x110]
mov ecx, dword [esp + ebp*4 + 0xfb0]
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x10c], 0
mov ecx, dword [esp + 0x1b0]
cmp dword [esp + 0x10c], ecx
je 0x68442dc2
mov eax, ecx
shl eax, 8
add eax, dword [esp + 0x10c]
mov edx, dword [ebx + eax*4]
test edx, 0x200000
mov dword [esp + 0x1ac], eax
jne 0x68442db2
mov eax, dword [ebx + eax*4 + 4]
and eax, 0xffdfffff
mov esi, edx
and esi, 0xffdfffff
dec eax
cmp eax, esi
mov dword [esp + 0x194], esi
mov dword [esp + 0x190], eax
jle 0x68442db2
cmp dword [esp + 0x1bc], 3
jg 0x68443160
mov ebp, dword [esp + 0x194]
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x520], ebp
mov dword [esp + 0x390], ecx
mov dword [esp + 0x200], 2
mov dword [esp + 0x184], 1
cmp dword [esp + 0x184], 0x61
jg 0x68442f7a
dec dword [esp + 0x184]
mov esi, dword [esp + 0x184]
mov ecx, dword [esp + esi*4 + 0x390]
mov eax, dword [esp + 0x184]
mov edx, dword [esp + 0x184]
mov edi, dword [esp + edx*4 + 0x520]
mov esi, dword [esp + eax*4 + 0x200]
mov eax, ecx
sub eax, edi
cmp eax, 0x13
mov dword [esp + 0x180], edi
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x178], esi
jle 0x68441f66
cmp esi, 0xe
jle 0x68442f8f
lea edx, [eax + 1]
cmp edx, 1
jle 0x68442f50
xor eax, eax
cmp dword [section..data], edx
jmp 0x68441f84
inc eax
cmp dword [eax*4 + section..data], edx
jl 0x68441f7c
dec eax
mov dword [esp + 0x108], eax
js 0x68442f50
mov edi, dword [esp + 0x108]
mov esi, dword [edi*4 + section..data]
mov ebp, dword [esp + 0x180]
add ebp, esi
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x174], ebp
mov ecx, dword [esp + 0x17c]
cmp dword [esp + 0x174], ecx
jg 0x68443154
mov edi, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x174]
mov edx, dword [edi + ebp*4]
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x174]
lea edi, [edx + eax]
mov dword [esp + 0x170], edx
jmp 0x6844202b
seta dl
movzx eax, dl
test eax, eax
je 0x68442452
mov eax, ecx
sub eax, esi
mov ebp, dword [esp + 0x1c8]
mov edx, dword [ebp + eax*4]
mov dword [ebp + ecx*4], edx
mov ecx, eax
mov eax, dword [esp + 0x12c]
dec eax
cmp eax, ecx
jge 0x68442452
mov eax, ecx
sub eax, esi
mov ebp, dword [esp + 0x1c8]
mov edx, dword [esp + 0x178]
add edx, dword [ebp + eax*4]
mov ebp, dword [esp + 0x1c4]
mov al, byte [edi + ebp]
cmp byte [edx + ebp], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 1]
cmp byte [ebp + edx + 1], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 2]
cmp byte [ebp + edx + 2], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 3]
cmp byte [ebp + edx + 3], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 4]
cmp byte [ebp + edx + 4], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 5]
cmp byte [ebp + edx + 5], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 6]
cmp byte [ebp + edx + 6], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 7]
cmp byte [ebp + edx + 7], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 8]
cmp byte [ebp + edx + 8], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 9]
cmp byte [ebp + edx + 9], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 0xa]
cmp byte [ebp + edx + 0xa], al
jne 0x68441ff8
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 0xb]
cmp byte [ebp + edx + 0xb], al
jne 0x68441ff8
mov eax, dword [esp + 0x1c0]
add edx, 0xc
lea ebp, [edi + 0xc]
add eax, 8
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x16c], eax
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x1c4]
mov al, byte [ebp + edx]
mov ebp, dword [esp + 0x34]
cmp byte [ebp + edx], al
jne 0x68441ff8
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0xc]
mov ax, word [edx + eax*2]
cmp word [edx + ebp*2], ax
jne 0x68441ff8
inc ebp
mov dword [esp + 0x104], ebp
mov ebp, dword [esp + 0xc]
inc ebp
mov dword [esp + 0x100], ebp
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c4]
mov al, byte [eax + edx + 1]
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 1], al
jne 0x68441ff8
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0x100]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0x104]
cmp word [eax + edx*2], bp
jne 0x68441ff8
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add edx, 2
add eax, 2
mov dword [esp + 0xfc], edx
mov dword [esp + 0xf8], eax
mov edx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0xc]
mov al, byte [edx + ebp + 2]
mov ebp, dword [esp + 0x34]
cmp byte [edx + ebp + 2], al
jne 0x68441ff8
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0xf8]
mov ax, word [edx + eax*2]
mov ebp, dword [esp + 0xfc]
cmp word [edx + ebp*2], ax
jne 0x68441ff8
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add ebp, 3
add eax, 3
mov dword [esp + 0xf4], ebp
mov dword [esp + 0xf0], eax
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0xc]
mov al, byte [ebp + edx + 3]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 3], al
jne 0x68441ff8
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0xf0]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0xf4]
cmp word [eax + edx*2], bp
jne 0x68441ff8
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add edx, 4
add eax, 4
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], eax
mov edx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0xc]
mov al, byte [edx + ebp + 4]
mov ebp, dword [esp + 0x34]
cmp byte [edx + ebp + 4], al
jne 0x68441ff8
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0xe8]
mov ax, word [edx + eax*2]
mov ebp, dword [esp + 0xec]
cmp word [edx + ebp*2], ax
jne 0x68441ff8
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add ebp, 5
add eax, 5
mov dword [esp + 0xe4], ebp
mov dword [esp + 0xe0], eax
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0xc]
mov al, byte [ebp + edx + 5]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 5], al
jne 0x68441ff8
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0xe0]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0xe4]
cmp word [eax + edx*2], bp
jne 0x68441ff8
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add edx, 6
add eax, 6
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], eax
mov edx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0xc]
mov al, byte [edx + ebp + 6]
mov ebp, dword [esp + 0x34]
cmp byte [edx + ebp + 6], al
jne 0x68441ff8
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0xd8]
mov ax, word [edx + eax*2]
mov ebp, dword [esp + 0xdc]
cmp word [edx + ebp*2], ax
jne 0x68441ff8
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add ebp, 7
add eax, 7
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xd0], eax
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0xc]
mov al, byte [ebp + edx + 7]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 7], al
jne 0x68441ff8
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0xd0]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0xd4]
cmp word [eax + edx*2], bp
jne 0x68441ff8
add dword [esp + 0x34], 8
mov ebp, dword [esp + 0x1c0]
add dword [esp + 0xc], 8
cmp dword [esp + 0x34], ebp
jb 0x68442422
sub dword [esp + 0x34], ebp
mov eax, dword [esp + 0x1c0]
cmp dword [esp + 0xc], eax
jb 0x68442433
sub dword [esp + 0xc], eax
dec dword [esp + 0x1cc]
sub dword [esp + 0x16c], 8
jns 0x6844214e
xor eax, eax
test eax, eax
jne 0x68442006
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x1c8]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0x174]
inc ecx
mov edi, dword [esp + 0x17c]
cmp ecx, edi
mov dword [esp + 0xcc], ecx
jg 0x68443154
mov ebp, dword [edx + ecx*4]
mov edx, dword [esp + 0x178]
lea edi, [ebp + edx]
mov dword [esp + 0xc8], ebp
jmp 0x684424cb
seta dl
movzx eax, dl
test eax, eax
je 0x684428f2
mov eax, ecx
sub eax, esi
mov ebp, dword [esp + 0x1c8]
mov edx, dword [ebp + eax*4]
mov dword [ebp + ecx*4], edx
mov ecx, eax
mov eax, dword [esp + 0x12c]
dec eax
cmp eax, ecx
jge 0x684428f2
mov eax, ecx
sub eax, esi
mov ebp, dword [esp + 0x1c8]
mov edx, dword [esp + 0x178]
add edx, dword [ebp + eax*4]
mov ebp, dword [esp + 0x1c4]
mov al, byte [edi + ebp]
cmp byte [edx + ebp], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 1]
cmp byte [ebp + edx + 1], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 2]
cmp byte [ebp + edx + 2], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 3]
cmp byte [ebp + edx + 3], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 4]
cmp byte [ebp + edx + 4], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 5]
cmp byte [ebp + edx + 5], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 6]
cmp byte [ebp + edx + 6], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 7]
cmp byte [ebp + edx + 7], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 8]
cmp byte [ebp + edx + 8], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 9]
cmp byte [ebp + edx + 9], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 0xa]
cmp byte [ebp + edx + 0xa], al
jne 0x68442498
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 0xb]
cmp byte [ebp + edx + 0xb], al
jne 0x68442498
mov eax, dword [esp + 0x1c0]
add edx, 0xc
lea ebp, [edi + 0xc]
add eax, 8
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x168], eax
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x1c4]
mov al, byte [ebp + edx]
mov ebp, dword [esp + 0x34]
cmp byte [ebp + edx], al
jne 0x68442498
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0xc]
mov ax, word [edx + eax*2]
cmp word [edx + ebp*2], ax
jne 0x68442498
inc ebp
mov dword [esp + 0xc4], ebp
mov ebp, dword [esp + 0xc]
inc ebp
mov dword [esp + 0xc0], ebp
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c4]
mov al, byte [eax + edx + 1]
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 1], al
jne 0x68442498
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0xc0]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0xc4]
cmp word [eax + edx*2], bp
jne 0x68442498
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add edx, 2
add eax, 2
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], eax
mov edx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0xc]
mov al, byte [edx + ebp + 2]
mov ebp, dword [esp + 0x34]
cmp byte [edx + ebp + 2], al
jne 0x68442498
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0xb8]
mov ax, word [edx + eax*2]
mov ebp, dword [esp + 0xbc]
cmp word [edx + ebp*2], ax
jne 0x68442498
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add ebp, 3
add eax, 3
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb0], eax
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0xc]
mov al, byte [ebp + edx + 3]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 3], al
jne 0x68442498
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0xb0]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0xb4]
cmp word [eax + edx*2], bp
jne 0x68442498
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add edx, 4
add eax, 4
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], eax
mov edx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0xc]
mov al, byte [edx + ebp + 4]
mov ebp, dword [esp + 0x34]
cmp byte [edx + ebp + 4], al
jne 0x68442498
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0xa8]
mov ax, word [edx + eax*2]
mov ebp, dword [esp + 0xac]
cmp word [edx + ebp*2], ax
jne 0x68442498
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add ebp, 5
add eax, 5
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], eax
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0xc]
mov al, byte [ebp + edx + 5]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 5], al
jne 0x68442498
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0xa0]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0xa4]
cmp word [eax + edx*2], bp
jne 0x68442498
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add edx, 6
add eax, 6
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0xc]
mov al, byte [edx + ebp + 6]
mov ebp, dword [esp + 0x34]
cmp byte [edx + ebp + 6], al
jne 0x68442498
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0x98]
mov ax, word [edx + eax*2]
mov ebp, dword [esp + 0x9c]
cmp word [edx + ebp*2], ax
jne 0x68442498
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add ebp, 7
add eax, 7
mov dword [esp + 0x94], ebp
mov dword [esp + 0x90], eax
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0xc]
mov al, byte [ebp + edx + 7]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 7], al
jne 0x68442498
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0x90]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0x94]
cmp word [eax + edx*2], bp
jne 0x68442498
add dword [esp + 0x34], 8
mov ebp, dword [esp + 0x1c0]
add dword [esp + 0xc], 8
cmp dword [esp + 0x34], ebp
jb 0x684428c2
sub dword [esp + 0x34], ebp
mov eax, dword [esp + 0x1c0]
cmp dword [esp + 0xc], eax
jb 0x684428d3
sub dword [esp + 0xc], eax
dec dword [esp + 0x1cc]
sub dword [esp + 0x168], 8
jns 0x684425ee
xor eax, eax
test eax, eax
jne 0x684424a6
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0x1c8]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0xcc]
inc ecx
mov edi, dword [esp + 0x17c]
cmp ecx, edi
mov dword [esp + 0x8c], ecx
jg 0x68443154
mov ebp, dword [edx + ecx*4]
mov edx, dword [esp + 0x178]
lea edi, [ebp + edx]
mov dword [esp + 0x88], ebp
jmp 0x6844296b
seta dl
movzx eax, dl
test eax, eax
je 0x68442d4a
mov eax, ecx
sub eax, esi
mov ebp, dword [esp + 0x1c8]
mov edx, dword [ebp + eax*4]
mov dword [ebp + ecx*4], edx
mov ecx, eax
mov eax, dword [esp + 0x12c]
dec eax
cmp eax, ecx
jge 0x68442d4a
mov eax, ecx
sub eax, esi
mov ebp, dword [esp + 0x1c8]
mov edx, dword [esp + 0x178]
add edx, dword [ebp + eax*4]
mov ebp, dword [esp + 0x1c4]
mov al, byte [edi + ebp]
cmp byte [edx + ebp], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 1]
cmp byte [ebp + edx + 1], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 2]
cmp byte [ebp + edx + 2], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 3]
cmp byte [ebp + edx + 3], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 4]
cmp byte [ebp + edx + 4], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 5]
cmp byte [ebp + edx + 5], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 6]
cmp byte [ebp + edx + 6], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 7]
cmp byte [ebp + edx + 7], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 8]
cmp byte [ebp + edx + 8], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 9]
cmp byte [ebp + edx + 9], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 0xa]
cmp byte [ebp + edx + 0xa], al
jne 0x68442938
mov ebp, dword [esp + 0x1c4]
mov al, byte [ebp + edi + 0xb]
cmp byte [ebp + edx + 0xb], al
jne 0x68442938
mov eax, dword [esp + 0x1c0]
add edx, 0xc
lea ebp, [edi + 0xc]
add eax, 8
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x164], eax
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x1c4]
mov al, byte [ebp + edx]
mov ebp, dword [esp + 0x34]
cmp byte [ebp + edx], al
jne 0x68442938
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0xc]
mov ax, word [edx + eax*2]
cmp word [edx + ebp*2], ax
jne 0x68442938
inc ebp
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0xc]
inc ebp
mov dword [esp + 0x80], ebp
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c4]
mov al, byte [eax + edx + 1]
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 1], al
jne 0x68442938
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0x80]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0x84]
cmp word [eax + edx*2], bp
jne 0x68442938
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add edx, 2
add eax, 2
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0xc]
mov al, byte [edx + ebp + 2]
mov ebp, dword [esp + 0x34]
cmp byte [edx + ebp + 2], al
jne 0x68442938
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0x78]
mov ax, word [edx + eax*2]
mov ebp, dword [esp + 0x7c]
cmp word [edx + ebp*2], ax
jne 0x68442938
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add ebp, 3
add eax, 3
mov dword [esp + 0x74], ebp
mov dword [esp + 0x70], eax
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0xc]
mov al, byte [ebp + edx + 3]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 3], al
jne 0x68442938
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0x70]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0x74]
cmp word [eax + edx*2], bp
jne 0x68442938
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add edx, 4
add eax, 4
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0xc]
mov al, byte [edx + ebp + 4]
mov ebp, dword [esp + 0x34]
cmp byte [edx + ebp + 4], al
jne 0x68442938
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0x68]
mov ax, word [edx + eax*2]
mov ebp, dword [esp + 0x6c]
cmp word [edx + ebp*2], ax
jne 0x68442938
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add ebp, 5
add eax, 5
mov dword [esp + 0x64], ebp
mov dword [esp + 0x60], eax
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0xc]
mov al, byte [ebp + edx + 5]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 5], al
jne 0x68442938
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0x60]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0x64]
cmp word [eax + edx*2], bp
jne 0x68442938
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add edx, 6
add eax, 6
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0xc]
mov al, byte [edx + ebp + 6]
mov ebp, dword [esp + 0x34]
cmp byte [edx + ebp + 6], al
jne 0x68442938
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0x58]
mov ax, word [edx + eax*2]
mov ebp, dword [esp + 0x5c]
cmp word [edx + ebp*2], ax
jne 0x68442938
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
add ebp, 7
add eax, 7
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], eax
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0xc]
mov al, byte [ebp + edx + 7]
mov edx, dword [esp + 0x34]
cmp byte [ebp + edx + 7], al
jne 0x68442938
mov eax, dword [esp + 0x1b8]
mov ebp, dword [esp + 0x50]
mov bp, word [eax + ebp*2]
mov edx, dword [esp + 0x54]
cmp word [eax + edx*2], bp
jne 0x68442938
add dword [esp + 0x34], 8
mov ebp, dword [esp + 0x1c0]
add dword [esp + 0xc], 8
cmp dword [esp + 0x34], ebp
jb 0x68442d1a
sub dword [esp + 0x34], ebp
mov eax, dword [esp + 0x1c0]
cmp dword [esp + 0xc], eax
jb 0x68442d2b
sub dword [esp + 0xc], eax
dec dword [esp + 0x1cc]
sub dword [esp + 0x164], 8
jns 0x68442a8e
xor eax, eax
test eax, eax
jne 0x68442946
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x1c8]
mov dword [edi + ecx*4], eax
mov eax, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x8c]
inc ecx
test eax, eax
mov dword [esp + 0x174], ecx
jns 0x68441fb9
mov edx, dword [esp + 0x194]
sub dword [esp + 0x190], edx
mov ecx, dword [esp + 0x1a8]
mov edi, dword [esp + 0x190]
lea esi, [edi + ecx + 1]
test eax, eax
mov dword [esp + 0x1a8], esi
js 0x684435d1
mov eax, dword [esp + 0x1ac]
mov edx, dword [ebx + eax*4]
or edx, 0x200000
mov ebp, dword [esp + 0x1ac]
mov dword [ebx + ebp*4], edx
inc dword [esp + 0x10c]
cmp dword [esp + 0x10c], 0xff
jle 0x68441e62
mov esi, dword [esp + 0x1b0]
cmp byte [esp + esi + 0xeb0], 0
je 0x68442dfb
sub esp, 0xc
push 0x3ee
call fcn.68449c98
add esp, 0x10
xor ecx, ecx
mov eax, ecx
shl eax, 8
add eax, dword [esp + 0x1b0]
mov edx, dword [ebx + eax*4]
and edx, 0xffdfffff
mov dword [esp + ecx*4 + 0xab0], edx
mov edi, dword [ebx + eax*4 + 4]
and edi, 0xffdfffff
dec edi
mov dword [esp + ecx*4 + 0x6b0], edi
inc ecx
cmp ecx, 0xff
jle 0x68442dfd
mov ebp, dword [esp + 0x1b0]
shl ebp, 0xa
mov esi, dword [ebp + ebx]
mov ecx, dword [esp + 0x1b0]
and esi, 0xffdfffff
mov ebp, dword [esp + ecx*4 + 0xab0]
cmp ebp, esi
jle 0x6844367e
mov edi, dword [esp + 0x1c8]
mov ecx, dword [edi + esi*4]
dec ecx
jns 0x68442e72
add ecx, dword [esp + 0x1c0]
mov eax, dword [esp + 0x1c4]
movzx edx, byte [ecx + eax]
cmp byte [esp + edx + 0xeb0], 0
jne 0x68442eae
mov edi, dword [esp + edx*4 + 0xab0]
mov ebp, dword [esp + 0x1c8]
mov dword [ebp + edi*4], ecx
inc dword [esp + edx*4 + 0xab0]
mov edx, dword [esp + 0x1b0]
mov ebp, dword [esp + edx*4 + 0xab0]
inc esi
jmp 0x68442e56
mov edx, dword [sym.imp.msvcrt.dll__iob]
add edx, 0x40
push edx
push 0x21
push 1
push str.________main_sort_initialise_..._n
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x68441af8
mov eax, 1
jmp 0x68441ac1
push eax
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
push edi
push esi
push ebx
call fcn.68441180
add esp, 0x10
mov ebx, dword [esp + 0x13d0]
mov edx, dword [ebx + 0x44]
xor eax, eax
cmp edx, 0
mov dword [ebx + 0x1c], 0xffffffff
jmp 0x68442f16
mov esi, dword [esp + 0x1c8]
mov ebp, dword [esi + eax*4]
test ebp, ebp
je 0x68442f30
inc eax
cmp edx, eax
jg 0x68442f05
mov edx, dword [esp + 0x13d0]
cmp dword [edx + 0x1c], 0xffffffff
je 0x68442f3c
add esp, 0x13bc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0x13d0]
mov dword [ebp + 0x1c], eax
jmp 0x68442f18
sub esp, 0xc
push 0x3eb
call fcn.68449c98
add esp, 0x10
jmp 0x68442f25
mov eax, dword [esp + 0x1cc]
test eax, eax
js 0x68442d79
mov ebp, dword [esp + 0x184]
test ebp, ebp
jg 0x68441f00
mov eax, dword [esp + 0x1cc]
jmp 0x68442d79
sub esp, 0xc
push 0x3e9
call fcn.68449c98
add esp, 0x10
jmp 0x68441f0e
mov esi, dword [esp + 0x180]
mov edi, dword [esp + 0x1c8]
mov eax, dword [esp + 0x1c4]
add eax, dword [edi + esi*4]
mov ebp, dword [esp + 0x178]
mov cl, byte [eax + ebp]
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c4]
add eax, dword [edi + edx*4]
mov dl, byte [eax + ebp]
mov eax, esi
add eax, dword [esp + 0x17c]
sar eax, 1
mov esi, dword [edi + eax*4]
add esi, dword [esp + 0x1c4]
mov al, byte [esi + ebp]
cmp cl, dl
mov byte [esp + 0x163], al
jbe 0x68442fee
mov al, cl
mov cl, dl
mov dl, al
cmp dl, byte [esp + 0x163]
jbe 0x68443004
mov dl, byte [esp + 0x163]
cmp cl, dl
jbe 0x68443004
mov dl, cl
mov ecx, dword [esp + 0x180]
mov ebp, dword [esp + 0x17c]
mov dword [esp + 0x18c], ecx
mov esi, ecx
movzx edi, dl
mov dword [esp + 0x188], ebp
mov ecx, ebp
cmp esi, ecx
jg 0x68443082
mov eax, dword [esp + 0x1c8]
mov edx, dword [eax + esi*4]
mov eax, dword [esp + 0x1c4]
add eax, edx
mov ebp, dword [esp + 0x178]
movzx eax, byte [eax + ebp]
sub eax, edi
cmp eax, 0
jne 0x684430d5
mov ebp, dword [esp + 0x1c8]
mov eax, dword [esp + 0x18c]
mov eax, dword [ebp + eax*4]
mov dword [ebp + esi*4], eax
mov eax, dword [esp + 0x18c]
mov dword [ebp + eax*4], edx
inc eax
mov dword [esp + 0x18c], eax
inc esi
cmp esi, ecx
jle 0x6844302b
mov edi, dword [esp + 0x18c]
cmp dword [esp + 0x188], edi
jge 0x68443199
mov esi, dword [esp + 0x178]
mov ebp, dword [esp + 0x184]
mov edx, dword [esp + 0x180]
mov ecx, dword [esp + 0x17c]
inc esi
mov dword [esp + ebp*4 + 0x520], edx
mov dword [esp + ebp*4 + 0x390], ecx
mov dword [esp + ebp*4 + 0x200], esi
inc ebp
mov dword [esp + 0x184], ebp
jmp 0x68442f5f
jle 0x6844307d
cmp esi, ecx
jg 0x68443082
mov eax, dword [esp + 0x1c8]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x1c4]
add eax, edx
mov ebp, dword [esp + 0x178]
movzx eax, byte [eax + ebp]
sub eax, edi
cmp eax, 0
jne 0x6844312c
mov ebp, dword [esp + 0x1c8]
mov eax, dword [esp + 0x188]
mov eax, dword [ebp + eax*4]
mov dword [ebp + ecx*4], eax
mov eax, dword [esp + 0x188]
mov dword [ebp + eax*4], edx
dec eax
mov dword [esp + 0x188], eax
dec ecx
jmp 0x684430d7
jge 0x68443129
cmp esi, ecx
jg 0x68443082
mov ebp, dword [esp + 0x1c8]
mov edx, dword [ebp + esi*4]
mov eax, dword [ebp + ecx*4]
mov dword [ebp + esi*4], eax
mov dword [ebp + ecx*4], edx
inc esi
dec ecx
jmp 0x68443027
dec dword [esp + 0x108]
jmp 0x68441f8e
sub esp, 8
mov edx, dword [esp + 0x198]
sub edx, esi
inc edx
push edx
push dword [esp + 0x1b4]
push dword [esp + 0x11c]
push ecx
mov esi, dword [sym.imp.msvcrt.dll__iob]
push str.________qsort__0x_x__0x_x____done__d___this__d_n
add esi, 0x40
push esi
call sub.msvcrt.dll_fprintf
add esp, 0x20
jmp 0x68441ece
mov eax, esi
mov edx, dword [esp + 0x18c]
sub eax, dword [esp + 0x18c]
sub edx, dword [esp + 0x180]
cmp eax, edx
jle 0x684431b6
mov eax, edx
mov edi, esi
mov ebp, dword [esp + 0x180]
sub edi, eax
mov dword [esp + 0x15c], eax
jmp 0x68443203
mov eax, dword [esp + 0x1c8]
mov edx, dword [eax + ebp*4]
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x34], edx
mov edx, dword [eax + edi*4]
mov eax, dword [esp + 0x1c8]
mov dword [eax + ebp*4], edx
dec dword [esp + 0x15c]
mov edx, dword [esp + 0x34]
mov dword [eax + edi*4], edx
inc ebp
inc edi
mov eax, dword [esp + 0x15c]
test eax, eax
jg 0x684431ca
mov edx, dword [esp + 0x188]
mov eax, dword [esp + 0x17c]
sub edx, ecx
sub eax, dword [esp + 0x188]
cmp edx, eax
jle 0x68443224
mov edx, eax
mov eax, dword [esp + 0x17c]
sub eax, edx
mov ebp, esi
lea edi, [eax + 1]
test edx, edx
mov dword [esp + 0x158], edx
jmp 0x68443278
mov eax, dword [esp + 0x1c8]
mov edx, dword [eax + ebp*4]
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x34], edx
mov edx, dword [eax + edi*4]
mov eax, dword [esp + 0x1c8]
mov dword [eax + ebp*4], edx
dec dword [esp + 0x158]
mov edx, dword [esp + 0x34]
mov dword [eax + edi*4], edx
mov edx, dword [esp + 0x158]
inc ebp
inc edi
test edx, edx
jg 0x6844323d
mov eax, dword [esp + 0x180]
add eax, esi
mov edi, dword [esp + 0x178]
sub eax, dword [esp + 0x18c]
mov dword [esp + 0x144], edi
lea esi, [eax - 1]
sub dword [esp + 0x188], ecx
mov ebp, dword [esp + 0x180]
mov edi, dword [esp + 0x144]
mov edx, dword [esp + 0x17c]
sub edx, dword [esp + 0x188]
mov dword [esp + 0x138], ebp
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x118], ebp
mov dword [esp + 0x134], eax
mov ebp, esi
lea eax, [edi + 1]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x11c], esi
mov dword [esp + 0x13c], edx
lea esi, [edx + 1]
mov dword [esp + 0x140], eax
mov edx, ebp
mov eax, ecx
sub edx, dword [esp + 0x138]
sub eax, esi
cmp edx, eax
mov dword [esp + 0x120], esi
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], edi
jge 0x68443351
mov dword [esp + 0x138], esi
mov dword [esp + 0x118], esi
mov ebp, ecx
mov esi, dword [esp + 0x180]
mov dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x120], esi
mov dword [esp + 0x124], ecx
mov edx, ecx
mov eax, dword [esp + 0x13c]
sub edx, esi
sub eax, dword [esp + 0x134]
cmp edx, eax
mov dword [esp + 0x154], ecx
mov dword [esp + 0x150], esi
jge 0x684434d0
mov ecx, dword [esp + 0x150]
mov edi, dword [esp + 0x154]
mov esi, dword [esp + 0x134]
mov eax, dword [esp + 0x178]
mov dword [esp + 0x134], ecx
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1e8], edi
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x13c], edi
mov edi, dword [esp + 0x140]
mov dword [esp + 0x120], esi
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], edi
mov dword [esp + 0x140], eax
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0x138]
mov edx, ebp
sub edx, eax
mov dword [esp + 0x148], eax
mov eax, ecx
sub eax, esi
cmp edx, eax
mov dword [esp + 0x14c], ebp
jge 0x684434ff
mov dword [esp + 0x138], esi
mov dword [esp + 0x1f0], esi
mov ebp, ecx
mov esi, dword [esp + 0x148]
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x144], edi
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0x1d0], edi
mov edi, dword [esp + 0x178]
mov dword [esp + 0x1f4], esi
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x1d4], edi
mov edx, dword [esp + 0x184]
mov dword [esp + edx*4 + 0x390], ebp
mov eax, dword [esp + 0x138]
mov ebp, edx
inc ebp
mov dword [esp + edx*4 + 0x520], eax
mov eax, dword [esp + 0x144]
mov dword [esp + ebp*4 + 0x520], esi
mov dword [esp + ebp*4 + 0x390], ecx
mov dword [esp + edx*4 + 0x200], eax
mov ecx, dword [esp + 0x134]
mov dword [esp + ebp*4 + 0x200], edi
mov esi, dword [esp + 0x140]
inc ebp
mov edi, dword [esp + 0x13c]
add dword [esp + 0x184], 3
mov dword [esp + ebp*4 + 0x520], ecx
mov dword [esp + ebp*4 + 0x390], edi
mov dword [esp + ebp*4 + 0x200], esi
jmp 0x68442f5f
mov edx, dword [esp + 0x140]
mov dword [esp + 0x1d8], edx
mov eax, dword [esp + 0x13c]
mov edx, dword [esp + 0x134]
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1f8], edx
jmp 0x684433e2
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x124]
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1e4], edx
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x178]
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1d0], edx
mov eax, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1f0], edx
jmp 0x68443456
mov ecx, edi
sar dword [esp + 0x3c], cl
cmp dword [esp + 0x3c], 0xffff
jle 0x68443578
sub esp, 0xc
push 0x3ea
call fcn.68449c98
add esp, 0x10
inc dword [esp + 0x110]
cmp dword [esp + 0x110], 0xff
jle 0x68441e42
cmp dword [esp + 0x1bc], 3
jle 0x684435d1
sub esp, 0xc
mov edx, dword [esp + 0x1cc]
sub edx, dword [esp + 0x1b4]
push edx
push dword [esp + 0x1b8]
push dword [esp + 0x1d4]
mov edi, dword [sym.imp.msvcrt.dll__iob]
push str._________d_pointers___d_sorted___d_scanned_n
add edi, 0x40
push edi
call sub.msvcrt.dll_fprintf
add esp, 0x20
cmp dword [esp + 0x1bc], 2
jle 0x68443629
sub esp, 8
mov eax, dword [esp + 0x1bc]
sub eax, dword [esp + 0x1d4]
push eax
fild dword [esp]
add esp, 4
mov ebp, dword [esp + 0x1c8]
test ebp, ebp
je 0x68443605
fidiv dword [esp + 0x1c8]
sub esp, 8
fstp qword [esp]
push dword [esp + 0x1d0]
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
push str._______d_work___d_block__ratio__5.2f_n
add eax, 0x40
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x20
mov esi, dword [esp + 0x1cc]
test esi, esi
jns 0x68442eed
cmp dword [esp + 0x1bc], 1
jle 0x6844365d
mov ecx, dword [sym.imp.msvcrt.dll__iob]
add ecx, 0x40
push ecx
push 0x35
push 1
push str.____too_repetitive__using_fallback_sorting_algorithm_n
call sub.msvcrt.dll_fwrite
add esp, 0x10
push eax
mov edi, dword [esp + 0x13d4]
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
push dword [esp + 0x1c0]
push dword [esp + 0x1c8]
jmp 0x68442ee4
mov esi, dword [esp + 0x1b0]
shl esi, 0xa
mov eax, dword [esi + ebx + 0x400]
and eax, 0xffdfffff
mov ecx, dword [esp + 0x1b0]
lea esi, [eax - 1]
mov edi, dword [esp + ecx*4 + 0x6b0]
cmp edi, esi
jge 0x6844370b
mov edx, dword [esp + 0x1c8]
mov ecx, dword [edx + esi*4]
dec ecx
jns 0x684436bd
add ecx, dword [esp + 0x1c0]
mov ebp, dword [esp + 0x1c4]
movzx edx, byte [ecx + ebp]
cmp byte [esp + edx + 0xeb0], 0
jne 0x684436f8
mov eax, dword [esp + edx*4 + 0x6b0]
mov edi, dword [esp + 0x1c8]
mov dword [edi + eax*4], ecx
dec dword [esp + edx*4 + 0x6b0]
mov ecx, dword [esp + 0x1b0]
mov edi, dword [esp + ecx*4 + 0x6b0]
dec esi
cmp edi, esi
jl 0x684436a9
mov esi, dword [esp + 0x1b0]
mov ebp, dword [esp + esi*4 + 0xab0]
lea edx, [ebp - 1]
cmp edx, edi
je 0x6844372f
test ebp, ebp
jne 0x6844371f
cmp edi, dword [esp + 0x130]
je 0x6844372f
sub esp, 0xc
push 0x3ef
call fcn.68449c98
add esp, 0x10
xor edx, edx
mov ebp, edx
shl ebp, 8
add ebp, dword [esp + 0x1b0]
inc edx
or dword [ebx + ebp*4], 0x200000
cmp edx, 0xff
jle 0x68443731
mov edx, dword [esp + 0x1b0]
mov byte [esp + edx + 0xeb0], 1
cmp dword [esp + 0x110], 0xfe
jg 0x68443578
mov ecx, edx
shl ecx, 0xa
mov ebp, dword [ecx + ebx]
mov edx, dword [ecx + ebx + 0x400]
and ebp, 0xffdfffff
and edx, 0xffdfffff
sub edx, ebp
xor edi, edi
cmp edx, 0xfffe
jmp 0x684437a0
inc edi
mov eax, edx
mov ecx, edi
sar eax, cl
cmp eax, 0xfffe
jg 0x68443794
dec edx
mov dword [esp + 0x3c], edx
test edx, edx
js 0x68443558
mov esi, dword [esp + 0x1c8]
lea eax, [edx + ebp]
mov eax, dword [esi + eax*4]
mov ecx, edi
mov esi, edx
sar esi, cl
mov ecx, dword [esp + 0x1b8]
cmp eax, 0x21
mov word [ecx + eax*2], si
jg 0x684437dd
add eax, dword [esp + 0x1c0]
mov word [ecx + eax*2], si
dec edx
jmp 0x684437a9
mov ecx, dword [sym.imp.msvcrt.dll__iob]
add ecx, 0x40
push ecx
push 0x1b
push 1
push str.________bucket_sorting_..._n
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x68441c19