Function at 0xdd0710
Capabilities:
Write file on windows

Disassembly:
push ebp
mov eax, 0x146c
mov ebp, esp
push edi
push esi
push ebx
call fcn.00de37a0
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x44]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
mov ebx, dword [eax + 0x18]
mov edi, dword [eax + 0x268]
cmp esi, 0x270f
mov dword [ebp - 0x13a0], ecx
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x13ac], eax
mov dword [ebp - 0x13a4], edx
mov dword [ebp - 0x139c], ebx
mov dword [ebp - 0x1398], esi
mov dword [ebp - 0x1394], edi
jle 0xdd2951
mov eax, dword [ebp - 0x1398]
mov edx, dword [ebp - 0x1398]
mov dword [ebp - 0x1390], 0
add eax, 0x22
add edx, 0x23
test al, 1
cmovne eax, edx
add eax, dword [ebp - 0x13a0]
test ecx, ecx
mov dword [ebp - 0x13a8], eax
jle 0xdd07b7
cmp ecx, 0x64
jle 0xdd291a
mov eax, dword [ebp - 0x1398]
shl eax, 5
add eax, dword [ebp - 0x1398]
mov dword [ebp - 0x1390], eax
cmp dword [ebp - 0x1394], 3
jg 0xdd29b9
mov ecx, dword [ebp - 0x139c]
mov eax, 0xfffe
mov dword [ecx + 0x40000], 0
mov ebx, ecx
mov dword [ebx + eax*4 + 4], 0
sub eax, 1
cmp eax, 0xfffffffe
jne 0xdd07db
mov edi, dword [ebp - 0x1398]
mov esi, dword [ebp - 0x13a0]
mov ebx, dword [ebp - 0x1398]
mov eax, dword [ebp - 0x13a0]
sub edi, 1
mov ecx, dword [ebp - 0x13a0]
movzx edx, byte [esi]
sub esi, 1
mov dword [ebp - 0x12d4], edi
mov edi, dword [ebp - 0x13a8]
mov dword [ebp - 0x1318], esi
sub eax, 2
sub ecx, 3
mov dword [ebp - 0x1310], ecx
shl edx, 8
lea esi, [edi + ebx*2]
mov edi, dword [ebp - 0x13a0]
mov dword [ebp - 0x1314], eax
add edi, ebx
mov ebx, dword [ebp - 0x12d4]
mov dword [ebp - 0x12d8], edi
mov ecx, edi
mov word [esi - 2], 0
mov eax, edx
movzx edx, byte [ecx - 1]
sar eax, 8
sub ebx, 4
mov word [esi - 4], 0
shl edx, 8
or eax, edx
mov edx, dword [ebp - 0x139c]
add dword [edx + eax*4], 1
movzx edx, byte [ecx - 2]
sar eax, 8
mov word [esi - 6], 0
shl edx, 8
or eax, edx
mov edx, dword [ebp - 0x139c]
add dword [edx + eax*4], 1
movzx edx, byte [ecx - 3]
sar eax, 8
mov word [esi - 8], 0
sub esi, 8
shl edx, 8
or eax, edx
mov edx, dword [ebp - 0x139c]
add dword [edx + eax*4], 1
mov edx, eax
movzx eax, byte [ecx - 4]
sar edx, 8
sub ecx, 4
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x139c]
add dword [eax + edx*4], 1
cmp ebx, 2
jg 0xdd0852
test ebx, ebx
js 0xdd091f
mov esi, dword [ebp - 0x13a0]
xor ecx, ecx
mov eax, ebx
add esi, ebx
mov dword [ebp - 0x140c], esi
mov esi, dword [ebp - 0x13a8]
sar edx, 8
mov word [esi + eax*2], 0
mov esi, dword [ebp - 0x140c]
movzx eax, byte [ecx + esi]
sub ecx, 1
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x139c]
add dword [eax + edx*4], 1
mov eax, ecx
add eax, ebx
jns 0xdd08ee
mov esi, dword [ebp - 0x13a0]
mov ecx, dword [ebp - 0x1398]
mov ebx, dword [ebp - 0x13a8]
movzx eax, byte [esi]
lea edx, [ebx + ecx*2]
mov ecx, 2
mov byte [edi], al
mov word [edx], 0
add edx, 2
mov ebx, dword [ebp - 0x13a0]
movzx eax, byte [ecx + ebx - 1]
mov byte [ecx + edi - 1], al
add ecx, 1
mov word [edx], 0
add edx, 2
cmp ecx, 0x23
jne 0xdd0946
cmp dword [ebp - 0x1394], 3
jg 0xdd298c
mov esi, dword [ebp - 0x139c]
mov edx, 3
mov eax, dword [esi]
mov edi, esi
add dword [esi + 4], eax
mov eax, dword [edi + edx*4 - 8]
add dword [edi + edx*4 - 4], eax
add edx, 1
cmp edx, 0x10002
jne 0xdd0984
mov eax, dword [ebp - 0x13a0]
mov ebx, dword [ebp - 0x1310]
add ebx, dword [ebp - 0x1398]
mov edx, dword [ebp - 0x1318]
movzx ecx, byte [eax]
add edx, dword [ebp - 0x1398]
mov edi, dword [ebp - 0x1314]
mov dword [ebp - 0x140c], ebx
mov ebx, dword [ebp - 0x12d4]
add edi, dword [ebp - 0x1398]
shl ecx, 8
mov dword [ebp - 0x12dc], edx
mov esi, dword [ebp - 0x12d8]
mov edx, ecx
mov ecx, dword [ebp - 0x139c]
shr dx, 8
movzx eax, byte [esi - 1]
mov esi, dword [ebp - 0x13a4]
shl eax, 8
or edx, eax
movzx eax, dx
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
shr dx, 8
sub ecx, 1
mov dword [eax], ecx
mov dword [esi + ecx*4], ebx
mov ecx, dword [ebp - 0x12dc]
mov esi, dword [ebp - 0x139c]
movzx eax, byte [ecx - 1]
shl eax, 8
or edx, eax
movzx eax, dx
lea eax, [esi + eax*4]
mov ecx, dword [eax]
lea esi, [ebx - 1]
shr dx, 8
sub ecx, 1
mov dword [eax], ecx
mov eax, dword [ebp - 0x13a4]
mov dword [ebp - 0x13f8], ecx
mov dword [eax + ecx*4], esi
movzx eax, byte [edi - 1]
sub edi, 4
mov ecx, dword [ebp - 0x139c]
shl eax, 8
or edx, eax
movzx eax, dx
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0x13a4]
mov esi, dword [eax]
sub esi, 1
mov dword [eax], esi
lea eax, [ebx - 2]
mov dword [ecx + esi*4], eax
mov ecx, edx
mov edx, dword [ebp - 0x139c]
mov dword [ebp - 0x13f8], esi
mov esi, dword [ebp - 0x140c]
shr cx, 8
movzx eax, byte [esi - 1]
sub dword [ebp - 0x12d8], 4
sub dword [ebp - 0x12dc], 4
shl eax, 8
or ecx, eax
movzx eax, cx
lea eax, [edx + eax*4]
mov edx, dword [ebp - 0x13a4]
mov esi, dword [eax]
sub esi, 1
mov dword [eax], esi
lea eax, [ebx - 3]
sub ebx, 4
mov dword [ebp - 0x1404], esi
mov dword [edx + esi*4], eax
sub dword [ebp - 0x140c], 4
cmp ebx, 2
jg 0xdd09d9
test ebx, ebx
js 0xdd0b0f
mov edi, dword [ebp - 0x13a0]
lea esi, [ebx + edi]
mov edi, dword [ebp - 0x13a4]
movzx eax, byte [esi]
shr cx, 8
sub esi, 1
mov edx, dword [ebp - 0x139c]
shl eax, 8
or ecx, eax
movzx eax, cx
lea eax, [edx + eax*4]
mov edx, dword [eax]
sub edx, 1
mov dword [eax], edx
mov dword [edi + edx*4], ebx
sub ebx, 1
jns 0xdd0ae5
mov byte [ebp - 0x10c], 0
mov eax, 1
mov dword [ebp - 0x9bc], 0
lea edx, [ebp - 0x10c]
mov byte [eax + edx], 0
mov dword [ebp + eax*4 - 0x9bc], eax
add eax, 1
cmp eax, 0x100
jne 0xdd0b2b
mov dword [ebp - 0x12cc], 0x16c
mov eax, 0x55555556
imul dword [ebp - 0x12cc]
sar dword [ebp - 0x12cc], 0x1f
mov ecx, dword [ebp - 0x12cc]
sub edx, ecx
cmp edx, 0xff
mov dword [ebp - 0x13b0], edx
mov dword [ebp - 0x12cc], edx
jg 0xdd0b4a
mov eax, edx
mov edi, edx
shl eax, 2
neg edi
lea ebx, [ebp - 0x9bc]
add ebx, eax
neg eax
mov dword [ebp - 0x12e0], ebx
mov dword [ebp - 0x1380], edx
mov dword [ebp - 0x13ec], edi
mov dword [ebp - 0x13f0], eax
mov eax, dword [ebp - 0x12e0]
mov ecx, dword [ebp - 0x139c]
mov esi, dword [ebp - 0x1380]
mov edi, dword [ebp - 0x1380]
mov eax, dword [eax]
sub esi, dword [ebp - 0x13b0]
mov dword [ebp - 0x12e4], 0
mov dword [ebp - 0x13fc], edi
mov dword [ebp - 0x138c], eax
mov edx, dword [ebp - 0x138c]
add eax, 1
shl eax, 0xa
mov eax, dword [eax + ecx]
shl edx, 0xa
mov ebx, dword [ecx + edx]
sub eax, ebx
mov dword [ebp - 0x1288], eax
mov eax, dword [ebp - 0x13b0]
sub eax, 1
mov dword [ebp - 0x13e8], eax
jmp 0xdd0c19
mov edi, dword [ebp - 0x12c4]
mov dword [ebp - 0x13fc], edi
mov edi, dword [ebp - 0x1380]
mov edx, dword [ebp - 0x13f0]
lea ebx, [ebp - 0x9bc]
mov eax, dword [ebp - 0x13ec]
add eax, dword [ebp - 0x13fc]
add ebx, dword [ebp - 0x12e4]
mov dword [ebp - 0x12c4], eax
lea eax, [ebx + edx]
mov ecx, dword [eax + edi*4]
mov edi, dword [ebp - 0x139c]
lea eax, [ecx + 1]
mov edx, ecx
shl eax, 8
shl edx, 8
mov eax, dword [edi + eax*4]
sub eax, dword [edi + edx*4]
cmp eax, dword [ebp - 0x1288]
mov dword [ebp - 0x1404], edx
jbe 0xdd0ca4
mov edx, dword [ebp - 0x1380]
add esi, dword [ebp - 0x13ec]
mov dword [ebx + edx*4], ecx
mov ebx, dword [ebp - 0x13b0]
mov ecx, dword [ebp - 0x13f0]
add dword [ebp - 0x12e4], ecx
lea eax, [esi + ebx]
cmp dword [ebp - 0x13e8], eax
jl 0xdd0c07
mov esi, dword [ebp - 0x12c4]
mov dword [ebp - 0x13fc], esi
mov edx, dword [ebp - 0x138c]
mov eax, dword [ebp - 0x13fc]
add dword [ebp - 0x1380], 1
add dword [ebp - 0x12e0], 4
cmp dword [ebp - 0x1380], 0x100
mov dword [ebp + eax*4 - 0x9bc], edx
jne 0xdd0ba3
cmp dword [ebp - 0x13b0], 1
jne 0xdd0b4a
mov ebx, dword [ebp - 0x13a4]
mov esi, dword [ebp - 0x13a4]
mov ecx, dword [ebp - 0x1390]
mov dword [ebp - 0x12d0], 0
add ebx, 4
add esi, 8
mov dword [ebp - 0x1290], ecx
mov dword [ebp - 0x1388], 0
mov dword [ebp - 0x13e0], ebx
mov dword [ebp - 0x13e4], esi
mov edi, dword [ebp - 0x12d0]
mov dword [ebp - 0x12c8], 0
mov edi, dword [ebp + edi*4 - 0x9bc]
mov dword [ebp - 0x1384], edi
shl edi, 8
mov dword [ebp - 0x13dc], edi
mov eax, dword [ebp - 0x1384]
cmp dword [ebp - 0x12c8], eax
je 0xdd20bf
mov eax, dword [ebp - 0x12c8]
add eax, dword [ebp - 0x13dc]
mov edx, dword [ebp - 0x139c]
shl eax, 2
add edx, eax
mov dword [ebp - 0x1374], edx
mov edx, dword [edx]
test edx, 0x200000
jne 0xdd20b1
mov esi, dword [ebp - 0x139c]
mov ebx, edx
and ebx, 0xffdfffff
mov dword [ebp - 0x136c], ebx
mov eax, dword [eax + esi + 4]
and eax, 0xffdfffff
sub eax, 1
cmp ebx, eax
mov dword [ebp - 0x1370], eax
jge 0xdd20b1
cmp dword [ebp - 0x1394], 3
jg 0xdd2814
mov ecx, dword [ebp - 0x136c]
mov ebx, dword [ebp - 0x1370]
mov dword [ebp - 0x5bc], 2
mov dword [ebp - 0x1368], 1
mov dword [ebp - 0x29c], ecx
mov dword [ebp - 0x42c], ebx
cmp dword [ebp - 0x1368], 0x61
jg 0xdd255d
sub dword [ebp - 0x1368], 1
mov edi, dword [ebp - 0x1368]
mov eax, dword [ebp - 0x1368]
mov esi, dword [ebp - 0x1368]
mov edi, dword [ebp + edi*4 - 0x42c]
mov eax, dword [ebp + eax*4 - 0x5bc]
mov esi, dword [ebp + esi*4 - 0x29c]
mov dword [ebp - 0x1324], edi
mov dword [ebp - 0x131c], eax
mov eax, edi
sub eax, esi
cmp eax, 0x13
mov dword [ebp - 0x11c4], esi
jle 0xdd0e4d
cmp dword [ebp - 0x131c], 0xe
jle 0xdd2412
lea edx, [eax + 1]
cmp edx, 1
jle 0xdd2061
xor eax, eax
nop
lea esi, [esi]
add eax, 1
cmp edx, dword [eax*4 + 0x13104a0]
jg 0xdd0e60
lea edx, [eax*4 + 0x13104a0]
mov dword [ebp - 0x12ec], edx
mov dword [ebp - 0x12e8], eax
mov ecx, dword [ebp - 0x12ec]
mov ebx, dword [ebp - 0x11c4]
mov ecx, dword [ecx - 4]
add ebx, ecx
cmp dword [ebp - 0x1324], ebx
mov dword [ebp - 0x1354], ecx
mov dword [ebp - 0x12a8], ebx
jl 0xdd204d
mov edx, dword [ebp - 0x13a4]
mov eax, ebx
mov edi, ebx
mov esi, dword [ebp - 0x13a4]
sub edi, ecx
shl ecx, 2
shl ebx, 2
lea eax, [edx + eax*4 + 4]
mov edx, dword [ebp - 0x12a8]
mov dword [ebp - 0x12c0], eax
mov eax, dword [ebp - 0x13a4]
add esi, ebx
mov dword [ebp - 0x12f4], ebx
mov dword [ebp - 0x12b4], esi
mov dword [ebp - 0x12b8], esi
sub eax, ecx
add eax, ebx
mov dword [ebp - 0x12bc], edi
mov dword [ebp - 0x12a4], edx
mov dword [ebp - 0x12f0], 0
mov dword [ebp - 0x13d4], ecx
mov dword [ebp - 0x13d8], eax
mov ebx, dword [ebp - 0x12b4]
mov esi, dword [ebp - 0x131c]
mov edi, dword [ebp - 0x1354]
mov eax, dword [ebp - 0x13d4]
mov ebx, dword [ebx]
mov edx, dword [ebp - 0x12a4]
neg edi
mov ecx, dword [ebp - 0x12b4]
neg eax
add esi, ebx
mov dword [ebp - 0x11c0], esi
add esi, dword [ebp - 0x13a0]
mov dword [ebp - 0x12f8], edi
mov edi, dword [ebp - 0x11c0]
mov dword [ebp - 0x1294], eax
mov eax, dword [ebp - 0x11c0]
mov dword [ebp - 0x1358], ebx
mov ebx, dword [ebp - 0x13d8]
mov dword [ebp - 0x130c], esi
mov esi, dword [ebp - 0x12bc]
add ebx, dword [ebp - 0x12f0]
add edi, 1
add eax, 2
mov dword [ebp - 0x1350], edx
mov dword [ebp - 0x13cc], edi
mov dword [ebp - 0x13d0], eax
jmp 0xdd0fe5
seta al
movzx eax, al
test eax, eax
je 0xdd23c4
mov edx, dword [ebp - 0x134c]
mov edi, dword [ebp - 0x1354]
add esi, dword [ebp - 0x12f8]
add ebx, dword [ebp - 0x1294]
mov dword [ecx], edx
mov edx, dword [ebp - 0x12a8]
add edi, esi
add ecx, dword [ebp - 0x1294]
sub edx, 1
cmp edx, edi
jge 0xdd14a0
mov eax, dword [ebp - 0x1298]
mov dword [ebp - 0x1350], eax
mov edx, dword [ebp - 0x12f8]
add edx, dword [ebp - 0x1350]
mov edi, dword [ebx]
mov eax, dword [ebp - 0x130c]
mov dword [ebp - 0x1298], edx
mov edx, dword [ebp - 0x131c]
mov dword [ebp - 0x13fc], ebx
mov dword [ebp - 0x134c], edi
movzx eax, byte [eax]
add edx, edi
mov edi, dword [ebp - 0x13a0]
cmp byte [edi + edx], al
jne 0xdd0f98
mov eax, edi
mov edi, dword [ebp - 0x13cc]
movzx eax, byte [eax + edi]
mov edi, dword [ebp - 0x13a0]
cmp byte [edx + edi + 1], al
jne 0xdd0f98
mov eax, edi
mov edi, dword [ebp - 0x13d0]
movzx eax, byte [eax + edi]
mov edi, dword [ebp - 0x13a0]
cmp byte [edx + edi + 2], al
jne 0xdd0f98
mov eax, dword [ebp - 0x11c0]
movzx eax, byte [eax + edi + 3]
cmp byte [edx + edi + 3], al
jne 0xdd0f98
mov eax, dword [ebp - 0x11c0]
movzx eax, byte [eax + edi + 4]
cmp byte [edx + edi + 4], al
jne 0xdd0f98
mov eax, dword [ebp - 0x11c0]
movzx eax, byte [eax + edi + 5]
cmp byte [edx + edi + 5], al
jne 0xdd0f98
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x11c0]
movzx eax, byte [eax + edi + 6]
cmp byte [edx + edi + 6], al
jne 0xdd0f98
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x11c0]
movzx eax, byte [eax + edi + 7]
cmp byte [edx + edi + 7], al
jne 0xdd0f98
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x11c0]
movzx eax, byte [eax + edi + 8]
cmp byte [edx + edi + 8], al
jne 0xdd0f98
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x11c0]
movzx eax, byte [eax + edi + 9]
cmp byte [edx + edi + 9], al
jne 0xdd0f98
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x11c0]
movzx eax, byte [eax + edi + 0xa]
cmp byte [edx + edi + 0xa], al
jne 0xdd0f98
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x11c0]
movzx eax, byte [eax + edi + 0xb]
cmp byte [edx + edi + 0xb], al
jne 0xdd0f98
add edx, 0xc
mov eax, dword [ebp - 0x11c0]
mov dword [ebp - 0x1404], edx
mov edx, dword [ebp - 0x1398]
add eax, 0xc
add edx, 8
mov dword [ebp - 0x1348], eax
mov dword [ebp - 0x1344], edx
mov edx, dword [ebp - 0x1348]
mov eax, dword [ebp - 0x13a0]
mov edi, dword [ebp - 0x13a0]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x1404]
cmp byte [edi + edx], al
jne 0xdd0f98
mov eax, dword [ebp - 0x13a8]
mov edi, dword [ebp - 0x1348]
mov edx, dword [ebp - 0x1404]
movzx edi, word [eax + edi*2]
cmp word [eax + edx*2], di
jne 0xdd0f98
mov edi, dword [ebp - 0x1404]
mov eax, dword [ebp - 0x1348]
mov edx, dword [ebp - 0x13a0]
add edi, 1
add eax, 1
mov dword [ebp - 0x1200], eax
mov dword [ebp - 0x11e4], edi
movzx edx, byte [edx + eax]
mov eax, dword [ebp - 0x13a0]
cmp byte [eax + edi], dl
jne 0xdd0f98
mov edi, dword [ebp - 0x13a8]
mov edx, dword [ebp - 0x1200]
mov eax, dword [ebp - 0x11e4]
movzx edx, word [edi + edx*2]
cmp word [edi + eax*2], dx
jne 0xdd0f98
mov edx, dword [ebp - 0x1404]
mov edi, dword [ebp - 0x1348]
mov eax, dword [ebp - 0x13a0]
add edx, 2
add edi, 2
mov dword [ebp - 0x11fc], edi
mov dword [ebp - 0x11e0], edx
movzx eax, byte [eax + edi]
mov edi, dword [ebp - 0x13a0]
cmp byte [edi + edx], al
jne 0xdd0f98
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x11fc]
mov edi, dword [ebp - 0x11e0]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd0f98
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1348]
add eax, 3
mov dword [ebp - 0x11dc], eax
mov eax, dword [ebp - 0x13a0]
add edx, 3
mov dword [ebp - 0x11f8], edx
mov edi, dword [ebp - 0x11dc]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd0f98
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x11f8]
mov edi, dword [ebp - 0x11dc]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd0f98
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1348]
add eax, 4
mov dword [ebp - 0x11d8], eax
mov eax, dword [ebp - 0x13a0]
add edx, 4
mov dword [ebp - 0x11f4], edx
mov edi, dword [ebp - 0x11d8]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd0f98
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x11f4]
mov edi, dword [ebp - 0x11d8]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd0f98
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1348]
add eax, 5
mov dword [ebp - 0x11d4], eax
mov eax, dword [ebp - 0x13a0]
add edx, 5
mov dword [ebp - 0x11f0], edx
mov edi, dword [ebp - 0x11d4]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd0f98
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x11f0]
mov edi, dword [ebp - 0x11d4]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd0f98
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1348]
add eax, 6
mov dword [ebp - 0x11d0], eax
mov eax, dword [ebp - 0x13a0]
add edx, 6
mov dword [ebp - 0x11ec], edx
mov edi, dword [ebp - 0x11d0]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd0f98
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x11ec]
mov edi, dword [ebp - 0x11d0]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd0f98
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1348]
add eax, 7
mov dword [ebp - 0x11cc], eax
mov eax, dword [ebp - 0x13a0]
add edx, 7
mov dword [ebp - 0x11e8], edx
mov edi, dword [ebp - 0x11cc]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd0f98
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x11e8]
mov edi, dword [ebp - 0x11cc]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd0f98
add dword [ebp - 0x1404], 8
mov edx, dword [ebp - 0x1398]
mov eax, dword [ebp - 0x1404]
add dword [ebp - 0x1348], 8
sub eax, dword [ebp - 0x1398]
cmp dword [ebp - 0x1404], edx
cmovb eax, dword [ebp - 0x1404]
mov dword [ebp - 0x1404], eax
mov eax, dword [ebp - 0x1348]
sub eax, edx
cmp dword [ebp - 0x1348], edx
cmovb eax, dword [ebp - 0x1348]
sub dword [ebp - 0x1290], 1
sub dword [ebp - 0x1344], 8
mov dword [ebp - 0x1348], eax
jns 0xdd1165
mov ecx, dword [ebp - 0x1350]
mov ebx, dword [ebp - 0x13a4]
lea ecx, [ebx + ecx*4]
mov dword [ebp - 0x13fc], ecx
mov eax, dword [ebp - 0x12a4]
mov edi, dword [ebp - 0x1358]
mov esi, dword [ebp - 0x13fc]
add eax, 1
cmp dword [ebp - 0x1324], eax
mov dword [esi], edi
mov dword [ebp - 0x12b0], eax
jl 0xdd204d
mov edx, dword [ebp - 0x12c0]
mov ecx, dword [ebp - 0x131c]
mov edi, dword [ebp - 0x12f0]
mov ebx, dword [ebp - 0x13a0]
mov edx, dword [edx]
mov eax, dword [ebp - 0x13e0]
sub eax, dword [ebp - 0x13d4]
add eax, dword [ebp - 0x12f4]
add ecx, edx
mov esi, dword [ebp - 0x12bc]
mov dword [ebp - 0x1308], ecx
add ebx, ecx
mov dword [ebp - 0x1240], edx
lea ecx, [eax + edi]
mov edx, dword [ebp - 0x1308]
mov eax, dword [ebp - 0x1308]
mov dword [ebp - 0x1304], ebx
mov edi, dword [ebp - 0x12b0]
add esi, 1
mov ebx, dword [ebp - 0x12c0]
add edx, 2
add eax, 1
mov dword [ebp - 0x13c4], eax
mov dword [ebp - 0x13c8], edx
jmp 0xdd1592
seta al
movzx eax, al
test eax, eax
je 0xdd23de
mov edx, dword [ebp - 0x12a8]
mov eax, dword [ebp - 0x1354]
add esi, dword [ebp - 0x12f8]
mov edi, dword [ebp - 0x1248]
sub edx, 1
add eax, esi
add ecx, dword [ebp - 0x1294]
mov dword [ebx], edi
add ebx, dword [ebp - 0x1294]
cmp edx, eax
jge 0xdd1a47
mov edx, dword [ebp - 0x129c]
mov dword [ebp - 0x12b0], edx
mov edi, edx
mov eax, dword [ecx]
mov edx, dword [ebp - 0x131c]
add edi, dword [ebp - 0x12f8]
mov dword [ebp - 0x13fc], ecx
mov dword [ebp - 0x1248], eax
add edx, eax
mov eax, dword [ebp - 0x1304]
mov dword [ebp - 0x129c], edi
mov edi, dword [ebp - 0x13a0]
movzx eax, byte [eax]
cmp byte [edi + edx], al
jne 0xdd1543
mov eax, edi
mov edi, dword [ebp - 0x13c4]
movzx eax, byte [eax + edi]
mov edi, dword [ebp - 0x13a0]
cmp byte [edx + edi + 1], al
jne 0xdd1543
mov eax, edi
mov edi, dword [ebp - 0x13c8]
movzx eax, byte [eax + edi]
mov edi, dword [ebp - 0x13a0]
cmp byte [edx + edi + 2], al
jne 0xdd1543
mov eax, dword [ebp - 0x1308]
movzx eax, byte [eax + edi + 3]
cmp byte [edx + edi + 3], al
jne 0xdd1543
mov eax, dword [ebp - 0x1308]
movzx eax, byte [eax + edi + 4]
cmp byte [edx + edi + 4], al
jne 0xdd1543
mov eax, dword [ebp - 0x1308]
movzx eax, byte [eax + edi + 5]
cmp byte [edx + edi + 5], al
jne 0xdd1543
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1308]
movzx eax, byte [eax + edi + 6]
cmp byte [edx + edi + 6], al
jne 0xdd1543
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1308]
movzx eax, byte [eax + edi + 7]
cmp byte [edx + edi + 7], al
jne 0xdd1543
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1308]
movzx eax, byte [eax + edi + 8]
cmp byte [edx + edi + 8], al
jne 0xdd1543
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1308]
movzx eax, byte [eax + edi + 9]
cmp byte [edx + edi + 9], al
jne 0xdd1543
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1308]
movzx eax, byte [eax + edi + 0xa]
cmp byte [edx + edi + 0xa], al
jne 0xdd1543
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1308]
movzx eax, byte [eax + edi + 0xb]
cmp byte [edx + edi + 0xb], al
jne 0xdd1543
add edx, 0xc
mov eax, dword [ebp - 0x1308]
mov dword [ebp - 0x1404], edx
mov edx, dword [ebp - 0x1398]
add eax, 0xc
add edx, 8
mov dword [ebp - 0x1340], eax
mov dword [ebp - 0x133c], edx
mov edx, dword [ebp - 0x1340]
mov eax, dword [ebp - 0x13a0]
mov edi, dword [ebp - 0x13a0]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x1404]
cmp byte [edi + edx], al
jne 0xdd1543
mov eax, dword [ebp - 0x13a8]
mov edi, dword [ebp - 0x1340]
mov edx, dword [ebp - 0x1404]
movzx edi, word [eax + edi*2]
cmp word [eax + edx*2], di
jne 0xdd1543
mov edi, dword [ebp - 0x1404]
mov eax, dword [ebp - 0x1340]
mov edx, dword [ebp - 0x13a0]
add edi, 1
add eax, 1
mov dword [ebp - 0x1238], eax
mov dword [ebp - 0x121c], edi
movzx edx, byte [edx + eax]
mov eax, dword [ebp - 0x13a0]
cmp byte [eax + edi], dl
jne 0xdd1543
mov edi, dword [ebp - 0x13a8]
mov edx, dword [ebp - 0x1238]
mov eax, dword [ebp - 0x121c]
movzx edx, word [edi + edx*2]
cmp word [edi + eax*2], dx
jne 0xdd1543
mov edx, dword [ebp - 0x1404]
mov edi, dword [ebp - 0x1340]
mov eax, dword [ebp - 0x13a0]
add edx, 2
add edi, 2
mov dword [ebp - 0x1234], edi
mov dword [ebp - 0x1218], edx
movzx eax, byte [eax + edi]
mov edi, dword [ebp - 0x13a0]
cmp byte [edi + edx], al
jne 0xdd1543
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x1234]
mov edi, dword [ebp - 0x1218]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1543
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1340]
add eax, 3
mov dword [ebp - 0x1214], eax
mov eax, dword [ebp - 0x13a0]
add edx, 3
mov dword [ebp - 0x1230], edx
mov edi, dword [ebp - 0x1214]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd1543
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x1230]
mov edi, dword [ebp - 0x1214]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1543
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1340]
add eax, 4
mov dword [ebp - 0x1210], eax
mov eax, dword [ebp - 0x13a0]
add edx, 4
mov dword [ebp - 0x122c], edx
mov edi, dword [ebp - 0x1210]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd1543
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x122c]
mov edi, dword [ebp - 0x1210]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1543
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1340]
add eax, 5
mov dword [ebp - 0x120c], eax
mov eax, dword [ebp - 0x13a0]
add edx, 5
mov dword [ebp - 0x1228], edx
mov edi, dword [ebp - 0x120c]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd1543
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x1228]
mov edi, dword [ebp - 0x120c]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1543
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1340]
add eax, 6
mov dword [ebp - 0x1208], eax
mov eax, dword [ebp - 0x13a0]
add edx, 6
mov dword [ebp - 0x1224], edx
mov edi, dword [ebp - 0x1208]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd1543
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x1224]
mov edi, dword [ebp - 0x1208]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1543
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1340]
add eax, 7
mov dword [ebp - 0x1204], eax
mov eax, dword [ebp - 0x13a0]
add edx, 7
mov dword [ebp - 0x1220], edx
mov edi, dword [ebp - 0x1204]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd1543
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x1220]
mov edi, dword [ebp - 0x1204]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1543
add dword [ebp - 0x1404], 8
mov edx, dword [ebp - 0x1398]
mov eax, dword [ebp - 0x1404]
add dword [ebp - 0x1340], 8
sub eax, dword [ebp - 0x1398]
cmp dword [ebp - 0x1404], edx
cmovb eax, dword [ebp - 0x1404]
mov dword [ebp - 0x1404], eax
mov eax, dword [ebp - 0x1340]
sub eax, edx
cmp dword [ebp - 0x1340], edx
cmovb eax, dword [ebp - 0x1340]
sub dword [ebp - 0x1290], 1
sub dword [ebp - 0x133c], 8
mov dword [ebp - 0x1340], eax
jns 0xdd170c
mov ecx, dword [ebp - 0x12b0]
mov ebx, dword [ebp - 0x13a4]
lea ecx, [ebx + ecx*4]
mov dword [ebp - 0x13fc], ecx
mov eax, dword [ebp - 0x12a4]
mov edi, dword [ebp - 0x1240]
mov esi, dword [ebp - 0x13fc]
add eax, 2
cmp dword [ebp - 0x1324], eax
mov dword [esi], edi
mov dword [ebp - 0x12ac], eax
jl 0xdd204d
mov edx, dword [ebp - 0x12b8]
mov ecx, dword [ebp - 0x131c]
mov edi, dword [ebp - 0x12f0]
mov ebx, dword [ebp - 0x13a0]
mov edx, dword [edx + 8]
mov eax, dword [ebp - 0x13e4]
sub eax, dword [ebp - 0x13d4]
add eax, dword [ebp - 0x12f4]
add ecx, edx
mov esi, dword [ebp - 0x12bc]
mov dword [ebp - 0x1300], ecx
add ebx, ecx
mov dword [ebp - 0x123c], edx
lea ecx, [eax + edi]
mov edx, dword [ebp - 0x1300]
mov eax, dword [ebp - 0x1300]
mov dword [ebp - 0x12fc], ebx
mov edi, dword [ebp - 0x12ac]
add esi, 2
mov ebx, dword [ebp - 0x12b8]
add edx, 2
add eax, 1
mov dword [ebp - 0x13bc], eax
mov dword [ebp - 0x13c0], edx
jmp 0xdd1b40
seta al
movzx eax, al
test eax, eax
je 0xdd23f8
mov edx, dword [ebp - 0x12a8]
mov eax, dword [ebp - 0x1354]
add esi, dword [ebp - 0x12f8]
mov edi, dword [ebp - 0x1244]
sub edx, 1
add eax, esi
add ecx, dword [ebp - 0x1294]
mov dword [ebx + 8], edi
add ebx, dword [ebp - 0x1294]
cmp edx, eax
jge 0xdd1ff5
mov edx, dword [ebp - 0x12a0]
mov dword [ebp - 0x12ac], edx
mov edi, edx
mov eax, dword [ecx]
mov edx, dword [ebp - 0x131c]
add edi, dword [ebp - 0x12f8]
mov dword [ebp - 0x13fc], ecx
mov dword [ebp - 0x1244], eax
add edx, eax
mov eax, dword [ebp - 0x12fc]
mov dword [ebp - 0x12a0], edi
mov edi, dword [ebp - 0x13a0]
movzx eax, byte [eax]
cmp byte [edi + edx], al
jne 0xdd1af0
mov eax, edi
mov edi, dword [ebp - 0x13bc]
movzx eax, byte [eax + edi]
mov edi, dword [ebp - 0x13a0]
cmp byte [edx + edi + 1], al
jne 0xdd1af0
mov eax, edi
mov edi, dword [ebp - 0x13c0]
movzx eax, byte [eax + edi]
mov edi, dword [ebp - 0x13a0]
cmp byte [edx + edi + 2], al
jne 0xdd1af0
mov eax, dword [ebp - 0x1300]
movzx eax, byte [eax + edi + 3]
cmp byte [edx + edi + 3], al
jne 0xdd1af0
mov eax, dword [ebp - 0x1300]
movzx eax, byte [eax + edi + 4]
cmp byte [edx + edi + 4], al
jne 0xdd1af0
mov eax, dword [ebp - 0x1300]
movzx eax, byte [eax + edi + 5]
cmp byte [edx + edi + 5], al
jne 0xdd1af0
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1300]
movzx eax, byte [eax + edi + 6]
cmp byte [edx + edi + 6], al
jne 0xdd1af0
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1300]
movzx eax, byte [eax + edi + 7]
cmp byte [edx + edi + 7], al
jne 0xdd1af0
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1300]
movzx eax, byte [eax + edi + 8]
cmp byte [edx + edi + 8], al
jne 0xdd1af0
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1300]
movzx eax, byte [eax + edi + 9]
cmp byte [edx + edi + 9], al
jne 0xdd1af0
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1300]
movzx eax, byte [eax + edi + 0xa]
cmp byte [edx + edi + 0xa], al
jne 0xdd1af0
mov edi, dword [ebp - 0x13a0]
mov eax, dword [ebp - 0x1300]
movzx eax, byte [eax + edi + 0xb]
cmp byte [edx + edi + 0xb], al
jne 0xdd1af0
add edx, 0xc
mov eax, dword [ebp - 0x1300]
mov dword [ebp - 0x1404], edx
mov edx, dword [ebp - 0x1398]
add eax, 0xc
add edx, 8
mov dword [ebp - 0x1338], eax
mov dword [ebp - 0x1334], edx
mov edx, dword [ebp - 0x1338]
mov eax, dword [ebp - 0x13a0]
mov edi, dword [ebp - 0x13a0]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x1404]
cmp byte [edi + edx], al
jne 0xdd1af0
mov eax, dword [ebp - 0x13a8]
mov edi, dword [ebp - 0x1338]
mov edx, dword [ebp - 0x1404]
movzx edi, word [eax + edi*2]
cmp word [eax + edx*2], di
jne 0xdd1af0
mov edi, dword [ebp - 0x1404]
mov eax, dword [ebp - 0x1338]
mov edx, dword [ebp - 0x13a0]
add edi, 1
add eax, 1
mov dword [ebp - 0x1280], eax
mov dword [ebp - 0x1264], edi
movzx edx, byte [edx + eax]
mov eax, dword [ebp - 0x13a0]
cmp byte [eax + edi], dl
jne 0xdd1af0
mov edi, dword [ebp - 0x13a8]
mov edx, dword [ebp - 0x1280]
mov eax, dword [ebp - 0x1264]
movzx edx, word [edi + edx*2]
cmp word [edi + eax*2], dx
jne 0xdd1af0
mov edx, dword [ebp - 0x1404]
mov edi, dword [ebp - 0x1338]
mov eax, dword [ebp - 0x13a0]
add edx, 2
add edi, 2
mov dword [ebp - 0x127c], edi
mov dword [ebp - 0x1260], edx
movzx eax, byte [eax + edi]
mov edi, dword [ebp - 0x13a0]
cmp byte [edi + edx], al
jne 0xdd1af0
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x127c]
mov edi, dword [ebp - 0x1260]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1af0
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1338]
add eax, 3
mov dword [ebp - 0x125c], eax
mov eax, dword [ebp - 0x13a0]
add edx, 3
mov dword [ebp - 0x1278], edx
mov edi, dword [ebp - 0x125c]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd1af0
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x1278]
mov edi, dword [ebp - 0x125c]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1af0
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1338]
add eax, 4
mov dword [ebp - 0x1258], eax
mov eax, dword [ebp - 0x13a0]
add edx, 4
mov dword [ebp - 0x1274], edx
mov edi, dword [ebp - 0x1258]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd1af0
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x1274]
mov edi, dword [ebp - 0x1258]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1af0
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1338]
add eax, 5
mov dword [ebp - 0x1254], eax
mov eax, dword [ebp - 0x13a0]
add edx, 5
mov dword [ebp - 0x1270], edx
mov edi, dword [ebp - 0x1254]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd1af0
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x1270]
mov edi, dword [ebp - 0x1254]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1af0
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1338]
add eax, 6
mov dword [ebp - 0x1250], eax
mov eax, dword [ebp - 0x13a0]
add edx, 6
mov dword [ebp - 0x126c], edx
mov edi, dword [ebp - 0x1250]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd1af0
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x126c]
mov edi, dword [ebp - 0x1250]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1af0
mov eax, dword [ebp - 0x1404]
mov edx, dword [ebp - 0x1338]
add eax, 7
mov dword [ebp - 0x124c], eax
mov eax, dword [ebp - 0x13a0]
add edx, 7
mov dword [ebp - 0x1268], edx
mov edi, dword [ebp - 0x124c]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x13a0]
cmp byte [edx + edi], al
jne 0xdd1af0
mov edx, dword [ebp - 0x13a8]
mov eax, dword [ebp - 0x1268]
mov edi, dword [ebp - 0x124c]
movzx eax, word [edx + eax*2]
cmp word [edx + edi*2], ax
jne 0xdd1af0
add dword [ebp - 0x1404], 8
mov edx, dword [ebp - 0x1398]
mov eax, dword [ebp - 0x1404]
add dword [ebp - 0x1338], 8
sub eax, dword [ebp - 0x1398]
cmp dword [ebp - 0x1404], edx
cmovb eax, dword [ebp - 0x1404]
mov dword [ebp - 0x1404], eax
mov eax, dword [ebp - 0x1338]
sub eax, edx
cmp dword [ebp - 0x1338], edx
cmovb eax, dword [ebp - 0x1338]
sub dword [ebp - 0x1290], 1
sub dword [ebp - 0x1334], 8
mov dword [ebp - 0x1338], eax
jns 0xdd1cba
mov ecx, dword [ebp - 0x12ac]
mov ebx, dword [ebp - 0x13a4]
lea ecx, [ebx + ecx*4]
mov dword [ebp - 0x13fc], ecx
mov eax, dword [ebp - 0x1290]
mov edi, dword [ebp - 0x123c]
mov esi, dword [ebp - 0x13fc]
test eax, eax
mov dword [esi], edi
js 0xdd28a9
add dword [ebp - 0x12a4], 3
mov ecx, dword [ebp - 0x12a4]
add dword [ebp - 0x12b4], 0xc
add dword [ebp - 0x12f0], 0xc
add dword [ebp - 0x12b8], 0xc
add dword [ebp - 0x12bc], 3
add dword [ebp - 0x12c0], 0xc
cmp dword [ebp - 0x1324], ecx
jge 0xdd0f10
sub dword [ebp - 0x12ec], 4
sub dword [ebp - 0x12e8], 1
jne 0xdd0e7f
mov eax, dword [ebp - 0x1290]
test eax, eax
js 0xdd28a9
mov eax, dword [ebp - 0x1368]
test eax, eax
jg 0xdd0dea
mov eax, dword [ebp - 0x1290]
test eax, eax
js 0xdd28a9
mov eax, dword [ebp - 0x1388]
mov edi, dword [ebp - 0x1370]
mov edx, dword [ebp - 0x136c]
mov ecx, dword [ebp - 0x1374]
lea edi, [edi + eax + 1]
sub edi, edx
mov edx, dword [ecx]
mov dword [ebp - 0x1388], edi
mov ebx, dword [ebp - 0x1374]
or edx, 0x200000
mov dword [ebx], edx
add dword [ebp - 0x12c8], 1
cmp dword [ebp - 0x12c8], 0x100
jne 0xdd0d46
mov esi, dword [ebp - 0x1384]
cmp byte [ebp + esi - 0x10c], 0
jne 0xdd296a
mov edi, dword [ebp - 0x139c]
xor ecx, ecx
mov ebx, dword [ebp - 0x139c]
lea esi, [ebp - 0x11bc]
add edi, 4
mov dword [ebp - 0x1400], edi
lea edi, [ebp - 0xdbc]
mov eax, ecx
shl eax, 8
add eax, dword [ebp - 0x1384]
shl eax, 2
mov edx, dword [ebx + eax]
and edx, 0xffdfffff
mov dword [edi + ecx*4], edx
mov edx, dword [ebp - 0x1400]
mov eax, dword [edx + eax]
and eax, 0xffdfffff
sub eax, 1
mov dword [esi + ecx*4], eax
add ecx, 1
cmp ecx, 0x100
jne 0xdd210d
mov eax, dword [ebp - 0x1384]
mov ecx, dword [ebp - 0x1384]
shl eax, 0xa
add eax, ebx
mov ecx, dword [ebp + ecx*4 - 0xdbc]
mov esi, dword [eax]
mov dword [ebp - 0x1378], eax
mov dword [ebp - 0x13b8], ecx
and esi, 0xffdfffff
cmp ecx, esi
jle 0xdd21e2
mov edi, dword [ebp - 0x13a4]
lea ebx, [edi + esi*4]
mov edx, dword [ebx]
mov ecx, dword [ebp - 0x1398]
mov edi, dword [ebp - 0x13a0]
sub edx, 1
lea eax, [edx + ecx]
cmp edx, 0xffffffff
cmovle edx, eax
movzx ecx, byte [edi + edx]
cmp byte [ebp + ecx - 0x10c], 0
jne 0xdd21d4
mov eax, dword [ebp + ecx*4 - 0xdbc]
mov edi, dword [ebp - 0x13a4]
mov dword [edi + eax*4], edx
add eax, 1
mov dword [ebp + ecx*4 - 0xdbc], eax
mov eax, dword [ebp - 0x1384]
mov eax, dword [ebp + eax*4 - 0xdbc]
mov dword [ebp - 0x13b8], eax
add esi, 1
add ebx, 4
cmp dword [ebp - 0x13b8], esi
jg 0xdd217f
mov eax, dword [ebp - 0x1384]
mov edx, dword [ebp - 0x139c]
mov ecx, dword [ebp - 0x1384]
shl eax, 0xa
lea eax, [eax + edx + 0x400]
mov edi, dword [eax]
mov esi, dword [ebp + ecx*4 - 0x11bc]
mov dword [ebp - 0x137c], eax
and edi, 0xffdfffff
lea eax, [edi - 1]
cmp esi, eax
jge 0xdd228e
lea eax, [edi - 2]
xor ebx, ebx
mov dword [ebp - 0x13b4], eax
mov ecx, dword [ebp - 0x13a4]
lea eax, [ebx + edi]
mov edx, dword [ecx + eax*4 - 4]
mov ecx, dword [ebp - 0x1398]
sub edx, 1
lea eax, [edx + ecx]
cmp edx, 0xffffffff
cmovle edx, eax
mov eax, dword [ebp - 0x13a0]
movzx ecx, byte [eax + edx]
cmp byte [ebp + ecx - 0x10c], 0
jne 0xdd227f
mov eax, dword [ebp + ecx*4 - 0x11bc]
mov esi, dword [ebp - 0x13a4]
mov dword [esi + eax*4], edx
sub eax, 1
mov dword [ebp + ecx*4 - 0x11bc], eax
mov eax, dword [ebp - 0x1384]
mov esi, dword [ebp + eax*4 - 0x11bc]
mov eax, dword [ebp - 0x13b4]
add eax, ebx
sub ebx, 1
cmp esi, eax
jl 0xdd2225
mov eax, dword [ebp - 0x13b8]
sub eax, 1
cmp esi, eax
je 0xdd22b9
mov edi, dword [ebp - 0x13b8]
test edi, edi
jne 0xdd22ad
cmp dword [ebp - 0x12d4], esi
je 0xdd22b9
mov dword [esp], 0x3ef
call fcn.00dc6a30
mov edx, dword [ebp - 0x1384]
mov ecx, dword [ebp - 0x139c]
or dword [ecx + edx*4], 0x200000
mov ebx, ecx
mov edx, 1
mov eax, edx
add edx, 1
shl eax, 8
add eax, dword [ebp - 0x1384]
or dword [ebx + eax*4], 0x200000
cmp edx, 0x100
jne 0xdd22d3
cmp dword [ebp - 0x12d0], 0xff
je 0xdd2864
mov edi, dword [ebp - 0x137c]
mov esi, dword [ebp - 0x1378]
mov edx, dword [edi]
xor edi, edi
mov ebx, dword [esi]
and edx, 0xffdfffff
and ebx, 0xffdfffff
sub edx, ebx
cmp edx, 0xfffe
jle 0xdd2338
add edi, 1
mov eax, edx
mov ecx, edi
sar eax, cl
cmp eax, 0xfffe
jg 0xdd2328
mov esi, edx
sub esi, 1
js 0xdd238a
lea eax, [ebx + edx - 1]
mov ebx, dword [ebp - 0x13a4]
mov edx, esi
lea eax, [ebx + eax*4]
mov dword [ebp - 0x13f8], eax
mov ecx, dword [ebp - 0x13f8]
mov ebx, edx
mov eax, dword [ecx]
mov ecx, edi
sar ebx, cl
mov ecx, dword [ebp - 0x13a8]
cmp eax, 0x21
mov word [ecx + eax*2], bx
jg 0xdd237b
add eax, dword [ebp - 0x1398]
mov word [ecx + eax*2], bx
sub edx, 1
sub dword [ebp - 0x13f8], 4
cmp edx, 0xffffffff
jne 0xdd2354
mov ecx, edi
sar esi, cl
cmp esi, 0xffff
jg 0xdd297b
add dword [ebp - 0x12d0], 1
cmp dword [ebp - 0x12d0], 0x100
je 0xdd2864
mov ebx, dword [ebp - 0x1384]
mov byte [ebp + ebx - 0x10c], 1
jmp 0xdd0d20
mov ebx, dword [ebp - 0x1350]
mov esi, dword [ebp - 0x13a4]
lea ebx, [esi + ebx*4]
mov dword [ebp - 0x13fc], ebx
jmp 0xdd14a0
mov ebx, dword [ebp - 0x12b0]
mov esi, dword [ebp - 0x13a4]
lea ebx, [esi + ebx*4]
mov dword [ebp - 0x13fc], ebx
jmp 0xdd1a47
mov ebx, dword [ebp - 0x12ac]
mov esi, dword [ebp - 0x13a4]
lea ebx, [esi + ebx*4]
mov dword [ebp - 0x13fc], ebx
jmp 0xdd1ff5
mov eax, dword [ebp - 0x1324]
add eax, dword [ebp - 0x11c4]
mov edx, dword [ebp - 0x13a4]
mov ecx, dword [ebp - 0x1324]
sar eax, 1
mov esi, dword [ebp - 0x13a4]
mov edi, dword [ebp - 0x11c4]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x131c]
add edx, dword [ebp - 0x13a0]
shl edi, 2
movzx ebx, byte [edx + eax]
mov eax, dword [esi + ecx*4]
movzx ecx, byte [edx + eax]
mov eax, dword [esi + edi]
mov dword [ebp - 0x135c], edi
movzx edx, byte [edx + eax]
cmp cl, dl
jae 0xdd246c
mov eax, edx
mov edx, ecx
mov ecx, eax
cmp cl, bl
jbe 0xdd2477
cmp dl, bl
mov ecx, ebx
cmovae ecx, edx
mov eax, dword [ebp - 0x11c4]
movzx ecx, cl
mov esi, dword [ebp - 0x1324]
mov dword [ebp - 0x13fc], ecx
mov dword [ebp - 0x132c], eax
mov dword [ebp - 0x11c8], eax
mov dword [ebp - 0x128c], esi
cmp dword [ebp - 0x132c], esi
jg 0xdd250d
mov ecx, dword [ebp - 0x13a4]
mov edx, dword [ebp - 0x132c]
mov eax, dword [ebp - 0x131c]
mov ebx, dword [ebp - 0x13a0]
lea edx, [ecx + edx*4]
mov ecx, dword [edx]
mov dword [ebp - 0x1360], edx
add eax, ecx
movzx eax, byte [eax + ebx]
sub eax, dword [ebp - 0x13fc]
cmp eax, 0
jne 0xdd256e
mov edi, dword [ebp - 0x11c8]
mov ebx, edx
mov eax, dword [ebp - 0x13a4]
add dword [ebp - 0x132c], 1
lea edx, [eax + edi*4]
add edi, 1
mov eax, dword [edx]
cmp dword [ebp - 0x132c], esi
mov dword [ebp - 0x11c8], edi
mov dword [ebx], eax
mov dword [edx], ecx
jle 0xdd24a6
mov ecx, dword [ebp - 0x128c]
cmp dword [ebp - 0x11c8], ecx
jle 0xdd25cf
mov eax, dword [ebp - 0x131c]
mov ebx, dword [ebp - 0x1368]
mov esi, dword [ebp - 0x11c4]
mov edi, dword [ebp - 0x1324]
add eax, 1
mov dword [ebp + ebx*4 - 0x5bc], eax
mov dword [ebp + ebx*4 - 0x29c], esi
mov dword [ebp + ebx*4 - 0x42c], edi
add ebx, 1
mov dword [ebp - 0x1368], ebx
jmp 0xdd206f
mov dword [esp], 0x3e9
call fcn.00dc6a30
jmp 0xdd0df7
nop
jg 0xdd259c
jmp 0xdd2858
mov eax, dword [ebp - 0x128c]
sub esi, 1
sub dword [ebp - 0x128c], 1
lea edx, [edi + eax*4]
mov eax, dword [edx]
mov dword [ebx], eax
mov dword [edx], ecx
cmp dword [ebp - 0x132c], esi
jg 0xdd250d
mov edi, dword [ebp - 0x13a4]
mov eax, dword [ebp - 0x131c]
mov edx, dword [ebp - 0x13a0]
lea ebx, [edi + esi*4]
mov ecx, dword [ebx]
add eax, ecx
movzx eax, byte [eax + edx]
sub eax, dword [ebp - 0x13fc]
cmp eax, 0
je 0xdd2577
jl 0xdd27f9
sub esi, 1
jmp 0xdd2590
mov edi, dword [ebp - 0x11c8]
mov eax, dword [ebp - 0x132c]
sub edi, dword [ebp - 0x11c4]
sub eax, dword [ebp - 0x11c8]
cmp edi, eax
cmovg edi, eax
test edi, edi
jle 0xdd2620
mov eax, dword [ebp - 0x132c]
mov edx, dword [ebp - 0x13a4]
mov ebx, dword [ebp - 0x13a4]
add ebx, dword [ebp - 0x135c]
sub eax, edi
lea ecx, [edx + 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 edi, 1
jne 0xdd260d
mov edi, dword [ebp - 0x128c]
mov ecx, dword [ebp - 0x1324]
sub edi, esi
mov esi, dword [ebp - 0x1324]
sub esi, dword [ebp - 0x128c]
cmp esi, edi
cmovg esi, edi
add ecx, 1
test esi, esi
mov dword [ebp - 0x1364], ecx
jle 0xdd2675
mov eax, dword [ebp - 0x132c]
mov edx, dword [ebp - 0x13a4]
lea ebx, [edx + eax*4]
mov eax, ecx
sub eax, esi
lea ecx, [edx + 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 0xdd2662
mov ebx, dword [ebp - 0x11c4]
mov esi, dword [ebp - 0x132c]
mov edx, dword [ebp - 0x131c]
lea ecx, [ebx + esi - 1]
mov ebx, dword [ebp - 0x1364]
sub ecx, dword [ebp - 0x11c8]
add edx, 1
mov dword [ebp - 0x1320], edx
mov edx, dword [ebp - 0x1324]
mov esi, ecx
sub ebx, edi
sub esi, dword [ebp - 0x11c4]
sub edx, ebx
lea edi, [ecx + 1]
lea eax, [ebx - 1]
cmp esi, edx
mov dword [ebp - 0x1330], edi
mov dword [ebp - 0x1328], eax
jge 0xdd26ea
mov eax, dword [ebp - 0x11c4]
mov dword [ebp - 0x11c4], ebx
mov ebx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x1324]
mov dword [ebp - 0x1324], eax
mov eax, esi
mov esi, edx
mov edx, eax
mov edi, dword [ebp - 0x1328]
sub edi, dword [ebp - 0x1330]
mov dword [ebp - 0x1284], edi
mov edi, dword [ebp - 0x131c]
cmp edx, dword [ebp - 0x1284]
jge 0xdd2748
mov eax, ebx
mov ebx, dword [ebp - 0x1330]
mov dword [ebp - 0x1330], eax
mov eax, dword [ebp - 0x1324]
mov edx, dword [ebp - 0x1328]
mov edi, dword [ebp - 0x1320]
mov dword [ebp - 0x1328], eax
mov eax, dword [ebp - 0x131c]
mov dword [ebp - 0x1324], edx
mov edx, dword [ebp - 0x1284]
mov dword [ebp - 0x1320], eax
cmp edx, esi
jle 0xdd2776
mov eax, dword [ebp - 0x11c4]
mov dword [ebp - 0x11c4], ebx
mov ebx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x1324]
mov dword [ebp - 0x1324], eax
mov eax, dword [ebp - 0x131c]
mov dword [ebp - 0x131c], edi
mov edi, eax
mov edx, dword [ebp - 0x1368]
mov esi, dword [ebp - 0x11c4]
mov eax, dword [ebp - 0x131c]
mov dword [ebp + edx*4 - 0x42c], ecx
mov ecx, dword [ebp - 0x1330]
mov dword [ebp + edx*4 - 0x29c], esi
mov esi, dword [ebp - 0x1320]
mov dword [ebp + edx*4 - 0x5bc], eax
mov eax, edx
mov edx, dword [ebp - 0x1324]
add eax, 1
mov dword [ebp + eax*4 - 0x29c], ebx
mov ebx, dword [ebp - 0x1328]
mov dword [ebp + eax*4 - 0x5bc], edi
mov dword [ebp + eax*4 - 0x42c], edx
mov eax, dword [ebp - 0x1368]
add dword [ebp - 0x1368], 3
add eax, 2
mov dword [ebp + eax*4 - 0x29c], ecx
mov dword [ebp + eax*4 - 0x42c], ebx
mov dword [ebp + eax*4 - 0x5bc], esi
jmp 0xdd206f
mov edx, dword [ebp - 0x1360]
sub esi, 1
add dword [ebp - 0x132c], 1
mov eax, dword [edx]
mov dword [edx], ecx
mov dword [ebx], eax
jmp 0xdd249e
sub eax, ebx
add eax, 1
mov dword [esp + 0x14], eax
mov edi, dword [ebp - 0x1388]
mov dword [esp + 0x10], edi
mov eax, dword [ebp - 0x12c8]
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov edx, dword [ebp - 0x1384]
mov dword [esp + 4], str.________qsort__0x_x__0x_x____done__d___this__d_n
add eax, 0x40
mov dword [esp + 8], edx
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0xdd0dbe
add dword [ebp - 0x132c], 1
jmp 0xdd249e
cmp dword [ebp - 0x1394], 3
jle 0xdd28a9
mov eax, dword [ebp - 0x1398]
sub eax, dword [ebp - 0x1388]
mov dword [esp + 0x10], eax
mov esi, dword [ebp - 0x1388]
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], esi
mov edi, dword [ebp - 0x1398]
add eax, 0x40
mov dword [esp + 4], str._________d_pointers___d_sorted___d_scanned_n
mov dword [esp], eax
mov dword [esp + 8], edi
call sub.msvcrt.dll_fprintf
cmp dword [ebp - 0x1394], 2
jg 0xdd2a46
mov esi, dword [ebp - 0x1290]
test esi, esi
js 0xdd29e6
mov edi, dword [ebp - 0x13ac]
mov edx, dword [edi + 0x44]
mov dword [edi + 0x1c], 0xffffffff
test edx, edx
jle 0xdd2904
mov ecx, dword [ebp - 0x13a4]
xor eax, eax
mov ebx, dword [ecx]
test ebx, ebx
jne 0xdd28fd
jmp 0xdd2a90
mov ebx, dword [ebp - 0x13a4]
mov ecx, dword [ebx + eax*4]
test ecx, ecx
je 0xdd293d
add eax, 1
cmp eax, edx
jne 0xdd28f0
mov dword [ebp + 8], 0x3eb
add esp, 0x146c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00dc6a30
sub ecx, 1
mov ebx, 0x55555556
mov eax, ecx
imul ebx
sar ecx, 0x1f
sub edx, ecx
imul edx, dword [ebp - 0x1398]
mov dword [ebp - 0x1390], edx
jmp 0xdd07b7
mov esi, dword [ebp - 0x13ac]
mov dword [esi + 0x1c], eax
add esp, 0x146c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [eax + 0x14]
mov ecx, ebx
mov eax, dword [eax + 0x10]
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00dcfb10
jmp 0xdd28c4
mov dword [esp], 0x3ee
call fcn.00dc6a30
jmp 0xdd20ea
mov dword [esp], 0x3ea
call fcn.00dc6a30
jmp 0xdd239a
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 0xdd0972
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x21
mov dword [esp + 4], 1
mov dword [esp], str.________main_sort_initialise_..._n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
jmp 0xdd07c4
cmp dword [ebp - 0x1394], 1
jle 0xdd2a17
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x35
mov dword [esp + 4], 1
mov dword [esp], str.____too_repetitive__using_fallback_sorting_algorithm_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov ecx, dword [ebp - 0x13ac]
mov ebx, dword [ebp - 0x1394]
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
mov dword [esp + 4], ebx
mov esi, dword [ebp - 0x1398]
mov dword [esp], esi
mov ecx, dword [ebp - 0x139c]
call fcn.00dcfb10
jmp 0xdd28c4
mov eax, dword [ebp - 0x1390]
sub eax, dword [ebp - 0x1290]
push eax
fild dword [esp]
add esp, 4
fild dword [ebp - 0x1398]
fdivp st(1)
fstp qword [esp + 0x10]
mov edx, dword [ebp - 0x1398]
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str._______d_work___d_block__ratio__5.2f_n
mov dword [esp + 0xc], edx
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0xdd28b6
mov edi, dword [ebp - 0x13ac]
mov dword [edi + 0x1c], 0
jmp 0xdd2946