Function at 0x4c9ab0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov eax, 0x130c
mov ebp, esp
push edi
push esi
push ebx
call fcn.004cbf60
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov edi, dword [ecx + 0x44]
mov dword [ebp - 0x1200], eax
mov edx, dword [edx + 0x24]
mov eax, dword [ecx + 0x268]
mov dword [ebp - 0x120c], eax
mov dword [ebp - 0x1204], edx
mov esi, dword [ecx + 0x18]
mov dword [ebp - 0x1208], edi
mov eax, dword [ecx + 0x30]
cmp edi, 0x270f
jle 0x4cb3b2
mov edx, dword [ebp - 0x1208]
add edx, 0x22
test dl, 1
je 0x4c9b19
mov edx, dword [ebp - 0x1208]
add edx, 0x23
mov ecx, dword [ebp - 0x1204]
add edx, ecx
test eax, eax
mov dword [ebp - 0x1210], edx
jle 0x4cb3a8
cmp eax, 0x64
jle 0x4c9b39
mov eax, 0x64
lea ecx, [eax - 1]
mov ebx, 0x55555556
mov eax, ecx
imul ebx
sar ecx, 0x1f
mov eax, dword [ebp - 0x1208]
sub edx, ecx
imul edx, eax
cmp dword [ebp - 0x120c], 3
mov dword [ebp - 0x1214], edx
mov dword [ebp - 0x11fc], edx
jg 0x4cb389
mov ebx, 0x10000
mov dword [esi + ebx*4], 0
dec ebx
jns 0x4c9b71
mov edi, dword [ebp - 0x1204]
xor ecx, ecx
mov eax, dword [ebp - 0x1208]
mov cl, byte [edi]
dec eax
shl ecx, 8
mov ebx, eax
mov dword [ebp - 0x1218], ecx
mov dword [ebp - 0x12a8], eax
jmp 0x4c9c55
mov eax, dword [ebp - 0x1218]
mov edx, dword [ebp - 0x1210]
sar eax, 8
mov ecx, dword [ebp - 0x1204]
mov dword [ebp - 0x1218], eax
mov word [edx + ebx*2], 0
xor eax, eax
mov edi, dword [ebp - 0x1218]
mov al, byte [ecx + ebx]
mov word [edx + ebx*2 - 2], 0
shl eax, 8
or edi, eax
mov dword [ebp - 0x1218], edi
mov edi, dword [ebp - 0x1218]
mov eax, dword [esi + edi*4]
inc eax
mov dword [esi + edi*4], eax
xor eax, eax
sar edi, 8
mov dword [ebp - 0x1218], edi
mov al, byte [ecx + ebx - 1]
mov word [edx + ebx*2 - 4], 0
shl eax, 8
or edi, eax
mov eax, dword [esi + edi*4]
inc eax
mov dword [esi + edi*4], eax
xor eax, eax
sar edi, 8
mov dword [ebp - 0x1218], edi
mov al, byte [ecx + ebx - 2]
mov word [edx + ebx*2 - 6], 0
shl eax, 8
or edi, eax
mov eax, dword [esi + edi*4]
inc eax
mov dword [esi + edi*4], eax
xor eax, eax
sar edi, 8
mov dword [ebp - 0x1218], edi
mov al, byte [ecx + ebx - 3]
sub ebx, 4
shl eax, 8
or edi, eax
mov dword [ebp - 0x1218], edi
mov eax, dword [esi + edi*4]
inc eax
mov dword [esi + edi*4], eax
cmp ebx, 2
jg 0x4c9ba2
test ebx, ebx
jmp 0x4c9ca7
mov ecx, dword [ebp - 0x1218]
mov eax, dword [ebp - 0x1210]
sar ecx, 8
mov edx, dword [ebp - 0x1204]
mov dword [ebp - 0x1218], ecx
mov word [eax + ebx*2], 0
xor eax, eax
mov al, byte [edx + ebx]
mov edx, dword [ebp - 0x1218]
shl eax, 8
or edx, eax
mov dword [ebp - 0x1218], edx
mov ecx, dword [ebp - 0x1218]
mov edi, dword [esi + ecx*4]
inc edi
dec ebx
mov dword [esi + ecx*4], edi
jns 0x4c9c62
mov edi, dword [ebp - 0x1208]
mov eax, dword [ebp - 0x1204]
xor ebx, ebx
lea ecx, [edi + eax]
mov eax, dword [ebp - 0x1210]
lea edx, [eax + edi*2]
mov edi, dword [ebp - 0x1204]
mov al, byte [edi + ebx]
mov byte [ecx + ebx], al
inc ebx
mov word [edx], 0
add edx, 2
cmp ebx, 0x21
jle 0x4c9cc3
cmp dword [ebp - 0x120c], 3
jg 0x4cbb07
mov ebx, 1
nop
mov edx, dword [esi + ebx*4]
mov eax, dword [esi + ebx*4 - 4]
add edx, eax
mov dword [esi + ebx*4], edx
inc ebx
cmp ebx, 0x10000
jle 0x4c9cf0
mov eax, dword [ebp - 0x1204]
xor edx, edx
mov ebx, dword [ebp - 0x12a8]
mov dl, byte [eax]
shl edx, 8
jmp 0x4c9de4
mov ecx, dword [ebp - 0x1204]
xor eax, eax
shr dx, 8
mov al, byte [ecx + ebx]
shl eax, 8
or edx, eax
mov eax, edx
shr dx, 8
and eax, 0xffff
mov edi, dword [esi + eax*4]
dec edi
mov dword [esi + eax*4], edi
mov eax, dword [ebp - 0x1200]
mov dword [eax + edi*4], ebx
xor eax, eax
mov al, byte [ecx + ebx - 1]
mov edi, dword [ebp - 0x1200]
shl eax, 8
or edx, eax
mov eax, edx
shr dx, 8
and eax, 0xffff
mov ecx, dword [esi + eax*4]
dec ecx
mov dword [esi + eax*4], ecx
lea eax, [ebx - 1]
mov dword [edi + ecx*4], eax
mov dword [ebp - 0x1218], ecx
mov ecx, dword [ebp - 0x1204]
xor eax, eax
mov al, byte [ecx + ebx - 2]
mov ecx, dword [ebp - 0x1200]
shl eax, 8
or edx, eax
mov eax, edx
shr dx, 8
and eax, 0xffff
mov edi, dword [esi + eax*4]
dec edi
mov dword [esi + eax*4], edi
lea eax, [ebx - 2]
mov dword [ecx + edi*4], eax
mov dword [ebp - 0x1218], edi
mov edi, dword [ebp - 0x1204]
xor eax, eax
mov al, byte [edi + ebx - 3]
mov edi, dword [ebp - 0x1200]
shl eax, 8
or edx, eax
mov eax, edx
and eax, 0xffff
mov ecx, dword [esi + eax*4]
dec ecx
mov dword [esi + eax*4], ecx
lea eax, [ebx - 3]
mov dword [ebp - 0x1218], ecx
mov dword [edi + ecx*4], eax
sub ebx, 4
cmp ebx, 2
jg 0x4c9d1d
test ebx, ebx
jmp 0x4c9e23
mov ecx, dword [ebp - 0x1204]
xor eax, eax
shr dx, 8
mov al, byte [ecx + ebx]
shl eax, 8
or edx, eax
mov eax, edx
and eax, 0xffff
mov edi, dword [esi + eax*4]
dec edi
mov dword [esi + eax*4], edi
mov eax, dword [ebp - 0x1200]
mov dword [ebp - 0x1218], edi
mov dword [eax + edi*4], ebx
dec ebx
jns 0x4c9df1
xor ebx, ebx
mov byte [ebp + ebx - 0x518], 0
mov dword [ebp + ebx*4 - 0x418], ebx
inc ebx
cmp ebx, 0xff
jle 0x4c9e27
mov dword [ebp - 0x122c], 1
mov edx, dword [ebp - 0x122c]
lea edx, [edx + edx*2 + 1]
mov dword [ebp - 0x122c], edx
cmp edx, 0x100
jle 0x4c9e49
mov eax, 0x55555556
imul dword [ebp - 0x122c]
mov eax, dword [ebp - 0x122c]
sar eax, 0x1f
mov dword [ebp - 0x122c], eax
mov ecx, dword [ebp - 0x122c]
sub edx, ecx
mov dword [ebp - 0x1230], edx
mov ebx, edx
mov dword [ebp - 0x122c], edx
cmp edx, 0xff
jg 0x4c9f41
lea edi, [edx - 1]
mov dword [ebp - 0x1238], edi
mov eax, dword [ebp + ebx*4 - 0x418]
mov dword [ebp - 0x1218], ebx
mov dword [ebp - 0x1228], eax
shl eax, 0xa
add eax, esi
mov dword [ebp - 0x1234], eax
mov eax, dword [ebp - 0x1230]
mov edi, dword [ebp - 0x1218]
sub edi, eax
mov eax, dword [ebp + edi*4 - 0x418]
mov dword [ebp - 0x12ec], eax
shl eax, 0xa
mov ecx, dword [eax + esi]
mov edx, dword [eax + esi + 0x400]
sub edx, ecx
mov ecx, dword [ebp - 0x1234]
mov eax, dword [ecx + 0x400]
sub eax, dword [ecx]
cmp edx, eax
jbe 0x4c9f21
mov edx, dword [ebp - 0x1218]
mov ecx, dword [ebp - 0x12ec]
mov dword [ebp - 0x1218], edi
cmp dword [ebp - 0x1238], edi
mov dword [ebp + edx*4 - 0x418], ecx
jl 0x4c9ec4
mov edi, dword [ebp - 0x1218]
mov eax, dword [ebp - 0x1228]
inc ebx
mov dword [ebp + edi*4 - 0x418], eax
cmp ebx, 0xff
jle 0x4c9ea6
cmp dword [ebp - 0x1230], 1
jne 0x4c9e61
mov dword [ebp - 0x1224], 0
xor ebx, ebx
mov edx, dword [ebp + ebx*4 - 0x418]
mov dword [ebp - 0x1218], 0
mov dword [ebp - 0x121c], edx
mov ecx, dword [ebp - 0x121c]
cmp dword [ebp - 0x1218], ecx
je 0x4caf73
mov eax, ecx
mov ecx, dword [ebp - 0x1218]
shl eax, 8
add eax, ecx
mov dword [ebp - 0x1220], eax
mov edx, dword [esi + eax*4]
test edx, 0x200000
jne 0x4caf64
mov eax, dword [esi + eax*4 + 4]
mov edi, edx
and eax, 0xffdfffff
and edi, 0xffdfffff
dec eax
mov dword [ebp - 0x123c], edi
mov dword [ebp - 0x1240], eax
cmp eax, edi
jle 0x4caf64
cmp dword [ebp - 0x120c], 3
jg 0x4cbad1
mov edi, dword [ebp - 0x123c]
mov eax, dword [ebp - 0x1240]
mov dword [ebp - 0xea8], edi
mov dword [ebp - 0x1038], eax
mov dword [ebp - 0x11c8], 2
mov dword [ebp - 0x1254], 1
cmp dword [ebp - 0x1254], 0x61
jg 0x4cb664
mov edi, dword [ebp - 0x1254]
dec edi
mov dword [ebp - 0x1254], edi
mov edx, dword [ebp - 0x1254]
mov ecx, dword [ebp - 0x1254]
mov edi, dword [ebp - 0x1254]
mov edx, dword [ebp + edx*4 - 0xea8]
mov ecx, dword [ebp + ecx*4 - 0x1038]
mov edi, dword [ebp + edi*4 - 0x11c8]
mov dword [ebp - 0x125c], ecx
sub ecx, edx
mov dword [ebp - 0x1258], edx
cmp ecx, 0x13
mov dword [ebp - 0x1260], edi
setle dl
cmp edi, 0xe
setg al
or eax, edx
test al, 1
je 0x4cb420
lea eax, [ecx + 1]
cmp eax, 1
jle 0x4cb679
cmp dword [0x4d2840], eax
mov dword [ebp - 0x126c], 0
jmp 0x4ca0a7
mov ecx, dword [ebp - 0x126c]
inc ecx
mov dword [ebp - 0x126c], ecx
mov edx, dword [ebp - 0x126c]
cmp dword [edx*4 + 0x4d2840], eax
jl 0x4ca08d
dec dword [ebp - 0x126c]
js 0x4cb679
mov ecx, dword [ebp - 0x126c]
mov edi, dword [ebp - 0x1258]
mov ecx, dword [ecx*4 + 0x4d2840]
add edi, ecx
mov dword [ebp - 0x1268], ecx
mov dword [ebp - 0x12ac], edi
mov dword [ebp - 0x1264], edi
mov eax, dword [ebp - 0x125c]
cmp dword [ebp - 0x1264], eax
jg 0x4ca0a9
mov edx, dword [ebp - 0x1264]
mov ecx, dword [ebp - 0x1200]
mov eax, dword [ebp - 0x1260]
mov edi, dword [ebp - 0x1264]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x1270], edx
lea eax, [edx + eax]
mov dword [ebp - 0x12b0], eax
jmp 0x4ca14d
seta al
and eax, 0xff
test eax, eax
je 0x4ca539
mov eax, edi
mov edx, dword [ebp - 0x1268]
sub eax, edx
mov ecx, dword [ebp - 0x1200]
mov edx, dword [ecx + eax*4]
mov dword [ecx + edi*4], edx
mov edi, eax
mov eax, dword [ebp - 0x12ac]
dec eax
cmp eax, edi
jge 0x4ca539
mov edx, dword [ebp - 0x1268]
mov eax, edi
sub eax, edx
mov ecx, dword [ebp - 0x1200]
mov edx, dword [ebp - 0x1260]
add edx, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x12b0]
mov eax, dword [ebp - 0x1204]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x1204]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 1]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 2]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 3]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 4]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 5]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 6]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 7]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 8]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 9]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 0xa]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 0xb]
cmp byte [ecx + edx], al
jne 0x4ca116
mov eax, dword [ebp - 0x12b0]
mov ecx, dword [ebp - 0x1208]
add eax, 0xc
add ecx, 8
inc edx
mov dword [ebp - 0x12ec], eax
mov dword [ebp - 0x1274], ecx
mov ecx, dword [ebp - 0x12ec]
mov eax, dword [ebp - 0x1204]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x1204]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12ec]
mov ax, word [ecx + eax*2]
cmp word [ecx + edx*2], ax
jne 0x4ca116
mov eax, dword [ebp - 0x12ec]
mov ecx, dword [ebp - 0x1204]
inc eax
inc edx
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x12ec]
mov cl, byte [ecx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + edx], cl
jne 0x4ca116
mov eax, dword [ebp - 0x1210]
mov ecx, dword [ebp - 0x12ec]
mov cx, word [eax + ecx*2]
cmp word [eax + edx*2], cx
jne 0x4ca116
mov eax, dword [ebp - 0x12ec]
inc edx
inc eax
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x1204]
mov ecx, dword [ebp - 0x12ec]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x1204]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12ec]
mov ax, word [ecx + eax*2]
cmp word [ecx + edx*2], ax
jne 0x4ca116
mov ecx, dword [ebp - 0x12ec]
inc edx
inc ecx
mov dword [ebp - 0x12ec], ecx
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12ec]
mov cl, byte [ecx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + edx], cl
jne 0x4ca116
mov eax, dword [ebp - 0x1210]
mov ecx, dword [ebp - 0x12ec]
mov cx, word [eax + ecx*2]
cmp word [eax + edx*2], cx
jne 0x4ca116
mov eax, dword [ebp - 0x12ec]
inc edx
inc eax
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x1204]
mov ecx, dword [ebp - 0x12ec]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x1204]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12ec]
mov ax, word [ecx + eax*2]
cmp word [ecx + edx*2], ax
jne 0x4ca116
mov eax, dword [ebp - 0x12ec]
mov ecx, dword [ebp - 0x1204]
inc eax
inc edx
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x12ec]
mov cl, byte [ecx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + edx], cl
jne 0x4ca116
mov eax, dword [ebp - 0x1210]
mov ecx, dword [ebp - 0x12ec]
mov cx, word [eax + ecx*2]
cmp word [eax + edx*2], cx
jne 0x4ca116
mov eax, dword [ebp - 0x12ec]
inc edx
inc eax
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x1204]
mov ecx, dword [ebp - 0x12ec]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x1204]
cmp byte [ecx + edx], al
jne 0x4ca116
mov ecx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12ec]
mov ax, word [ecx + eax*2]
cmp word [ecx + edx*2], ax
jne 0x4ca116
mov eax, dword [ebp - 0x12ec]
mov ecx, dword [ebp - 0x1204]
inc eax
inc edx
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x12ec]
mov cl, byte [ecx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + edx], cl
jne 0x4ca116
mov eax, dword [ebp - 0x1210]
mov ecx, dword [ebp - 0x12ec]
mov cx, word [eax + ecx*2]
cmp word [eax + edx*2], cx
jne 0x4ca116
mov eax, dword [ebp - 0x12ec]
inc edx
inc eax
cmp edx, dword [ebp - 0x1208]
mov dword [ebp - 0x12ec], eax
jb 0x4ca4f9
mov eax, dword [ebp - 0x1208]
sub edx, eax
mov eax, dword [ebp - 0x1208]
cmp dword [ebp - 0x12ec], eax
jb 0x4ca515
mov ecx, dword [ebp - 0x12ec]
sub ecx, eax
mov dword [ebp - 0x12ec], ecx
mov ecx, dword [ebp - 0x11fc]
dec ecx
sub dword [ebp - 0x1274], 8
mov dword [ebp - 0x11fc], ecx
jns 0x4ca2b9
xor eax, eax
test eax, eax
jne 0x4ca126
mov ecx, dword [ebp - 0x1264]
mov edx, dword [ebp - 0x1200]
inc ecx
mov eax, dword [ebp - 0x1270]
mov dword [ebp - 0x1264], ecx
mov ecx, dword [ebp - 0x125c]
mov dword [edx + edi*4], eax
cmp dword [ebp - 0x1264], ecx
jg 0x4ca0a9
mov edi, dword [ebp - 0x1264]
mov edi, dword [edx + edi*4]
mov edx, dword [ebp - 0x1260]
mov dword [ebp - 0x1270], edi
mov edi, dword [ebp - 0x1264]
mov eax, dword [ebp - 0x1270]
add eax, edx
mov dword [ebp - 0x12b0], eax
jmp 0x4ca5c9
seta al
and eax, 0xff
test eax, eax
je 0x4ca9b5
mov eax, edi
mov edx, dword [ebp - 0x1268]
sub eax, edx
mov ecx, dword [ebp - 0x1200]
mov edx, dword [ecx + eax*4]
mov dword [ecx + edi*4], edx
mov edi, eax
mov eax, dword [ebp - 0x12ac]
dec eax
cmp eax, edi
jge 0x4ca9b5
mov edx, dword [ebp - 0x1268]
mov eax, edi
sub eax, edx
mov ecx, dword [ebp - 0x1200]
mov edx, dword [ebp - 0x1260]
add edx, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x12b0]
mov eax, dword [ebp - 0x1204]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x1204]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 1]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 2]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 3]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 4]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 5]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 6]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 7]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 8]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 9]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 0xa]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12b0]
inc edx
mov al, byte [eax + ecx + 0xb]
cmp byte [ecx + edx], al
jne 0x4ca592
mov eax, dword [ebp - 0x12b0]
mov ecx, dword [ebp - 0x1208]
add eax, 0xc
add ecx, 8
inc edx
mov dword [ebp - 0x12ec], eax
mov dword [ebp - 0x1278], ecx
mov ecx, dword [ebp - 0x12ec]
mov eax, dword [ebp - 0x1204]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x1204]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12ec]
mov ax, word [ecx + eax*2]
cmp word [ecx + edx*2], ax
jne 0x4ca592
mov eax, dword [ebp - 0x12ec]
mov ecx, dword [ebp - 0x1204]
inc eax
inc edx
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x12ec]
mov cl, byte [ecx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + edx], cl
jne 0x4ca592
mov eax, dword [ebp - 0x1210]
mov ecx, dword [ebp - 0x12ec]
mov cx, word [eax + ecx*2]
cmp word [eax + edx*2], cx
jne 0x4ca592
mov eax, dword [ebp - 0x12ec]
inc edx
inc eax
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x1204]
mov ecx, dword [ebp - 0x12ec]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x1204]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12ec]
mov ax, word [ecx + eax*2]
cmp word [ecx + edx*2], ax
jne 0x4ca592
mov ecx, dword [ebp - 0x12ec]
inc edx
inc ecx
mov dword [ebp - 0x12ec], ecx
mov ecx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12ec]
mov cl, byte [ecx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + edx], cl
jne 0x4ca592
mov eax, dword [ebp - 0x1210]
mov ecx, dword [ebp - 0x12ec]
mov cx, word [eax + ecx*2]
cmp word [eax + edx*2], cx
jne 0x4ca592
mov eax, dword [ebp - 0x12ec]
inc edx
inc eax
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x1204]
mov ecx, dword [ebp - 0x12ec]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x1204]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12ec]
mov ax, word [ecx + eax*2]
cmp word [ecx + edx*2], ax
jne 0x4ca592
mov eax, dword [ebp - 0x12ec]
mov ecx, dword [ebp - 0x1204]
inc eax
inc edx
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x12ec]
mov cl, byte [ecx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + edx], cl
jne 0x4ca592
mov eax, dword [ebp - 0x1210]
mov ecx, dword [ebp - 0x12ec]
mov cx, word [eax + ecx*2]
cmp word [eax + edx*2], cx
jne 0x4ca592
mov eax, dword [ebp - 0x12ec]
inc edx
inc eax
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x1204]
mov ecx, dword [ebp - 0x12ec]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x1204]
cmp byte [ecx + edx], al
jne 0x4ca592
mov ecx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12ec]
mov ax, word [ecx + eax*2]
cmp word [ecx + edx*2], ax
jne 0x4ca592
mov eax, dword [ebp - 0x12ec]
mov ecx, dword [ebp - 0x1204]
inc eax
inc edx
mov dword [ebp - 0x12ec], eax
mov eax, dword [ebp - 0x12ec]
mov cl, byte [ecx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + edx], cl
jne 0x4ca592
mov eax, dword [ebp - 0x1210]
mov ecx, dword [ebp - 0x12ec]
mov cx, word [eax + ecx*2]
cmp word [eax + edx*2], cx
jne 0x4ca592
mov eax, dword [ebp - 0x12ec]
inc edx
inc eax
cmp edx, dword [ebp - 0x1208]
mov dword [ebp - 0x12ec], eax
jb 0x4ca975
mov eax, dword [ebp - 0x1208]
sub edx, eax
mov eax, dword [ebp - 0x1208]
cmp dword [ebp - 0x12ec], eax
jb 0x4ca991
mov ecx, dword [ebp - 0x12ec]
sub ecx, eax
mov dword [ebp - 0x12ec], ecx
mov ecx, dword [ebp - 0x11fc]
dec ecx
sub dword [ebp - 0x1278], 8
mov dword [ebp - 0x11fc], ecx
jns 0x4ca735
xor eax, eax
test eax, eax
jne 0x4ca5a2
mov ecx, dword [ebp - 0x1264]
mov edx, dword [ebp - 0x1200]
inc ecx
mov eax, dword [ebp - 0x1270]
mov dword [ebp - 0x1264], ecx
mov ecx, dword [ebp - 0x125c]
mov dword [edx + edi*4], eax
cmp dword [ebp - 0x1264], ecx
jg 0x4ca0a9
mov edi, dword [ebp - 0x1264]
mov edi, dword [edx + edi*4]
mov edx, dword [ebp - 0x1260]
mov dword [ebp - 0x1270], edi
mov edi, dword [ebp - 0x1264]
mov eax, dword [ebp - 0x1270]
add eax, edx
mov dword [ebp - 0x12b0], eax
jmp 0x4caa45
seta al
and eax, 0xff
test eax, eax
je 0x4caeff
mov eax, edi
mov edx, dword [ebp - 0x1268]
sub eax, edx
mov ecx, dword [ebp - 0x1200]
mov edx, dword [ecx + eax*4]
mov dword [ecx + edi*4], edx
mov edi, eax
mov eax, dword [ebp - 0x12ac]
dec eax
cmp eax, edi
jge 0x4caeff
mov edx, dword [ebp - 0x1268]
mov eax, edi
sub eax, edx
mov edx, dword [ebp - 0x1200]
mov ecx, dword [ebp - 0x1260]
add ecx, dword [edx + eax*4]
mov eax, dword [ebp - 0x12b0]
mov edx, dword [ebp - 0x1204]
mov dword [ebp - 0x12f8], eax
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov edx, dword [ebp - 0x12f8]
inc ecx
inc edx
mov dword [ebp - 0x12f8], edx
mov edx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov edx, dword [ebp - 0x12f8]
inc ecx
inc edx
mov dword [ebp - 0x12f8], edx
mov edx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1208]
inc eax
add edx, 8
inc ecx
mov dword [ebp - 0x12f8], eax
mov dword [ebp - 0x127c], edx
mov edx, dword [ebp - 0x12f8]
mov eax, dword [ebp - 0x1204]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0x1204]
cmp byte [edx + ecx], al
jne 0x4caa0e
mov edx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12f8]
mov ax, word [edx + eax*2]
cmp word [edx + ecx*2], ax
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x1210]
mov edx, dword [ebp - 0x12f8]
mov dx, word [eax + edx*2]
cmp word [eax + ecx*2], dx
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
inc ecx
inc eax
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x1204]
mov edx, dword [ebp - 0x12f8]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0x1204]
cmp byte [edx + ecx], al
jne 0x4caa0e
mov edx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12f8]
mov ax, word [edx + eax*2]
cmp word [edx + ecx*2], ax
jne 0x4caa0e
mov edx, dword [ebp - 0x12f8]
inc ecx
inc edx
mov dword [ebp - 0x12f8], edx
mov edx, dword [ebp - 0x1204]
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x1210]
mov edx, dword [ebp - 0x12f8]
mov dx, word [eax + edx*2]
cmp word [eax + ecx*2], dx
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
inc ecx
inc eax
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x1204]
mov edx, dword [ebp - 0x12f8]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0x1204]
cmp byte [edx + ecx], al
jne 0x4caa0e
mov edx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12f8]
mov ax, word [edx + eax*2]
cmp word [edx + ecx*2], ax
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x1210]
mov edx, dword [ebp - 0x12f8]
mov dx, word [eax + edx*2]
cmp word [eax + ecx*2], dx
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
inc ecx
inc eax
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x1204]
mov edx, dword [ebp - 0x12f8]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0x1204]
cmp byte [edx + ecx], al
jne 0x4caa0e
mov edx, dword [ebp - 0x1210]
mov eax, dword [ebp - 0x12f8]
mov ax, word [edx + eax*2]
cmp word [edx + ecx*2], ax
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
mov edx, dword [ebp - 0x1204]
inc eax
inc ecx
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x12f8]
mov dl, byte [edx + eax]
mov eax, dword [ebp - 0x1204]
cmp byte [eax + ecx], dl
jne 0x4caa0e
mov eax, dword [ebp - 0x1210]
mov edx, dword [ebp - 0x12f8]
mov dx, word [eax + edx*2]
cmp word [eax + ecx*2], dx
jne 0x4caa0e
mov eax, dword [ebp - 0x12f8]
inc ecx
inc eax
cmp ecx, dword [ebp - 0x1208]
mov dword [ebp - 0x12f8], eax
jb 0x4caebf
mov eax, dword [ebp - 0x1208]
sub ecx, eax
mov eax, dword [ebp - 0x1208]
cmp dword [ebp - 0x12f8], eax
jb 0x4caedb
mov edx, dword [ebp - 0x12f8]
sub edx, eax
mov dword [ebp - 0x12f8], edx
mov eax, dword [ebp - 0x11fc]
dec eax
sub dword [ebp - 0x127c], 8
mov dword [ebp - 0x11fc], eax
jns 0x4cac7f
xor eax, eax
test eax, eax
jne 0x4caa1e
mov edx, dword [ebp - 0x1200]
mov eax, dword [ebp - 0x1270]
mov ecx, dword [ebp - 0x1264]
mov dword [edx + edi*4], eax
inc ecx
mov eax, dword [ebp - 0x11fc]
mov dword [ebp - 0x1264], ecx
test eax, eax
jns 0x4ca0dc
mov ecx, dword [ebp - 0x1240]
mov edi, dword [ebp - 0x123c]
sub ecx, edi
test eax, eax
mov dword [ebp - 0x1240], ecx
mov ecx, dword [ebp - 0x1224]
mov edx, dword [ebp - 0x1240]
lea edx, [edx + ecx + 1]
mov dword [ebp - 0x1224], edx
js 0x4cb2ed
mov edi, dword [ebp - 0x1220]
mov edx, dword [esi + edi*4]
mov eax, dword [ebp - 0x1220]
or edx, 0x200000
mov dword [esi + eax*4], edx
mov edx, dword [ebp - 0x1218]
inc edx
mov dword [ebp - 0x1218], edx
cmp dword [ebp - 0x1218], 0xff
jle 0x4c9f71
mov edx, dword [ebp - 0x121c]
cmp byte [ebp + edx - 0x518], 0
je 0x4cafb0
sub esp, 0xc
push 0x3ee
call fcn.004be4f0
add esp, 0x10
mov dword [ebp - 0x1218], 0
mov edx, dword [ebp - 0x121c]
mov eax, dword [esi + edx*4]
mov ecx, dword [ebp - 0x1218]
and eax, 0xffdfffff
mov dword [ebp + ecx*4 - 0x918], eax
mov eax, dword [esi + edx*4 + 4]
add edx, 0x100
and eax, 0xffdfffff
dec eax
mov dword [ebp + ecx*4 - 0xd18], eax
inc ecx
mov dword [ebp - 0x1218], ecx
cmp ecx, 0xff
jle 0x4cafc0
mov eax, dword [ebp - 0x121c]
mov edi, dword [ebp - 0x121c]
shl eax, 0xa
mov edi, dword [ebp + edi*4 - 0x918]
mov eax, dword [eax + esi]
mov dword [ebp - 0x12c4], edi
and eax, 0xffdfffff
cmp edi, eax
mov dword [ebp - 0x1218], eax
jmp 0x4cb0aa
mov eax, dword [ebp - 0x1218]
mov ecx, dword [ebp - 0x1200]
mov edx, dword [ecx + eax*4]
dec edx
jns 0x4cb04a
mov eax, dword [ebp - 0x1208]
add edx, eax
mov edi, dword [ebp - 0x1204]
xor ecx, ecx
mov cl, byte [edi + edx]
cmp byte [ebp + ecx - 0x518], 0
jne 0x4cb091
mov eax, dword [ebp + ecx*4 - 0x918]
mov edi, dword [ebp - 0x1200]
mov dword [edi + eax*4], edx
mov eax, dword [ebp + ecx*4 - 0x918]
inc eax
mov dword [ebp + ecx*4 - 0x918], eax
mov eax, dword [ebp - 0x121c]
mov eax, dword [ebp + eax*4 - 0x918]
mov dword [ebp - 0x12c4], eax
mov eax, dword [ebp - 0x1218]
inc eax
mov dword [ebp - 0x1218], eax
mov edx, dword [ebp - 0x1218]
cmp dword [ebp - 0x12c4], edx
jg 0x4cb030
mov eax, dword [ebp - 0x121c]
mov ecx, dword [ebp - 0x121c]
shl eax, 0xa
mov edi, dword [ebp + ecx*4 - 0xd18]
mov eax, dword [eax + esi + 0x400]
and eax, 0xffdfffff
dec eax
mov dword [ebp - 0x1218], eax
cmp edi, eax
jge 0x4cb160
mov eax, dword [ebp - 0x1218]
mov ecx, dword [ebp - 0x1200]
mov edx, dword [ecx + eax*4]
dec edx
jns 0x4cb0f7
mov eax, dword [ebp - 0x1208]
add edx, eax
mov eax, dword [ebp - 0x1204]
xor ecx, ecx
mov cl, byte [eax + edx]
cmp byte [ebp + ecx - 0x518], 0
jne 0x4cb138
mov eax, dword [ebp + ecx*4 - 0xd18]
mov edi, dword [ebp - 0x1200]
mov dword [edi + eax*4], edx
mov eax, dword [ebp + ecx*4 - 0xd18]
dec eax
mov dword [ebp + ecx*4 - 0xd18], eax
mov eax, dword [ebp - 0x121c]
mov edi, dword [ebp + eax*4 - 0xd18]
mov eax, dword [ebp - 0x1218]
dec eax
mov dword [ebp - 0x1218], eax
cmp edi, dword [ebp - 0x1218]
jl 0x4cb0dd
mov edx, dword [ebp - 0x121c]
mov edx, dword [ebp + edx*4 - 0x918]
mov dword [ebp - 0x12c4], edx
mov eax, dword [ebp - 0x12c4]
dec eax
cmp eax, edi
je 0x4cb18d
mov ecx, dword [ebp - 0x12c4]
test ecx, ecx
jne 0x4cb17d
cmp edi, dword [ebp - 0x12a8]
je 0x4cb18d
sub esp, 0xc
push 0x3ef
call fcn.004be4f0
add esp, 0x10
mov eax, dword [ebp - 0x121c]
mov dword [ebp - 0x1218], 0xff
mov edx, dword [esi + eax*4]
or edx, 0x200000
mov dword [esi + eax*4], edx
add eax, 0x100
dec dword [ebp - 0x1218]
jns 0x4cb19d
mov ecx, dword [ebp - 0x121c]
cmp ebx, 0xfe
mov byte [ebp + ecx - 0x518], 1
jg 0x4cb2a1
mov eax, ecx
mov dword [ebp - 0x12a4], 0
shl eax, 0xa
mov edi, dword [eax + esi]
mov edx, dword [eax + esi + 0x400]
and edi, 0xffdfffff
and edx, 0xffdfffff
sub edx, edi
cmp edx, 0xfffe
jmp 0x4cb21c
mov eax, dword [ebp - 0x12a4]
inc eax
mov dword [ebp - 0x12a4], eax
mov eax, edx
mov cl, byte [ebp - 0x12a4]
sar eax, cl
cmp eax, 0xfffe
jg 0x4cb200
dec edx
mov dword [ebp - 0x1218], edx
test edx, edx
js 0x4cb281
lea eax, [edi + edx]
mov edi, dword [ebp - 0x1200]
lea eax, [edi + eax*4]
mov dword [ebp - 0x12ec], eax
mov ecx, dword [ebp - 0x12ec]
mov edi, dword [ebp - 0x1218]
mov eax, dword [ecx]
mov cl, byte [ebp - 0x12a4]
sar edi, cl
mov ecx, dword [ebp - 0x1210]
cmp eax, 0x21
mov word [ecx + eax*2], di
jg 0x4cb26a
add eax, dword [ebp - 0x1208]
mov word [ecx + eax*2], di
mov ecx, dword [ebp - 0x12ec]
sub ecx, 4
dec dword [ebp - 0x1218]
mov dword [ebp - 0x12ec], ecx
jns 0x4cb23b
mov cl, byte [ebp - 0x12a4]
sar edx, cl
cmp edx, 0xffff
jle 0x4cb2a1
sub esp, 0xc
push 0x3ea
call fcn.004be4f0
add esp, 0x10
inc ebx
cmp ebx, 0xff
jle 0x4c9f5a
cmp dword [ebp - 0x120c], 3
jle 0x4cb2ed
sub esp, 0xc
mov eax, dword [ebp - 0x1208]
mov edx, dword [ebp - 0x1224]
sub eax, edx
push eax
mov eax, dword [ebp - 0x1224]
push eax
mov eax, dword [ebp - 0x1208]
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str._________d_pointers___d_sorted___d_scanned_n
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x20
cmp dword [ebp - 0x120c], 2
jle 0x4cb343
mov eax, dword [ebp - 0x1214]
mov ebx, dword [ebp - 0x11fc]
sub eax, ebx
mov ecx, dword [ebp - 0x1208]
push edi
push edi
push eax
fild dword [esp]
add esp, 4
test ecx, ecx
je 0x4cb31f
fild dword [ebp - 0x1208]
fdivp st(1)
sub esp, 8
mov edx, dword [ebp - 0x1208]
fstp qword [esp]
push edx
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 edi, dword [ebp - 0x11fc]
test edi, edi
jns 0x4cb3ca
cmp dword [ebp - 0x120c], 1
jle 0x4cb370
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
push 0x35
push 1
push str.____too_repetitive__using_fallback_sorting_algorithm_n
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x120c]
push ebx
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
push ecx
mov edi, dword [ebp - 0x1208]
jmp 0x4cb3c0
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
push 0x21
push 1
push str.________main_sort_initialise_..._n
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x4c9b6c
mov eax, 1
jmp 0x4c9b39
mov ebx, dword [ebp - 0x120c]
push eax
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
push ebx
push edi
push esi
call fcn.004c90d0
add esp, 0x10
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 0x1c], 0xffffffff
mov eax, dword [eax + 0x44]
cmp eax, 0
jmp 0x4cb3ee
mov edi, dword [ebp - 0x1200]
mov ebx, dword [edi + edx*4]
test ebx, ebx
je 0x4cb401
inc edx
cmp eax, edx
jg 0x4cb3de
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0xffffffff
je 0x4cb409
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x1c], edx
jmp 0x4cb3f0
sub esp, 0xc
push 0x3eb
call fcn.004be4f0
add esp, 0x10
jmp 0x4cb3f9
mov edi, dword [ebp - 0x1200]
mov ecx, dword [ebp - 0x1258]
mov eax, dword [ebp - 0x1204]
mov edx, dword [edi + ecx*4]
add eax, edx
mov edx, dword [ebp - 0x1260]
mov cl, byte [eax + edx]
mov edx, dword [ebp - 0x125c]
mov eax, dword [ebp - 0x1204]
add eax, dword [edi + edx*4]
mov edi, dword [ebp - 0x1260]
mov dl, byte [eax + edi]
mov edi, dword [ebp - 0x125c]
mov eax, dword [ebp - 0x1258]
add eax, edi
mov edi, dword [ebp - 0x1200]
sar eax, 1
mov eax, dword [edi + eax*4]
mov edi, dword [ebp - 0x1204]
add eax, edi
mov edi, dword [ebp - 0x1260]
cmp cl, dl
mov al, byte [eax + edi]
mov byte [ebp - 0x127d], al
jbe 0x4cb492
mov al, cl
mov cl, dl
mov dl, al
cmp dl, byte [ebp - 0x127d]
jbe 0x4cb4a6
mov dl, byte [ebp - 0x127d]
cmp cl, dl
jbe 0x4cb4a6
mov dl, cl
and edx, 0xff
mov eax, dword [ebp - 0x1258]
mov dword [ebp - 0x12f0], edx
mov edx, dword [ebp - 0x125c]
mov dword [ebp - 0x1248], eax
mov dword [ebp - 0x1244], eax
mov dword [ebp - 0x124c], edx
mov ecx, edx
cmp dword [ebp - 0x1244], ecx
jg 0x4cb563
mov eax, dword [ebp - 0x1200]
mov edi, dword [ebp - 0x1244]
mov edx, dword [ebp - 0x1260]
mov edi, dword [eax + edi*4]
mov dword [ebp - 0x12f8], edi
mov eax, edi
mov edi, dword [ebp - 0x1204]
add eax, edi
mov al, byte [eax + edx]
mov edx, dword [ebp - 0x12f0]
and eax, 0xff
sub eax, edx
cmp eax, 0
jne 0x4cb5c3
mov eax, dword [ebp - 0x1200]
mov edi, dword [ebp - 0x1248]
mov edx, dword [ebp - 0x1244]
mov edi, dword [eax + edi*4]
mov dword [eax + edx*4], edi
mov edi, dword [ebp - 0x1248]
mov edx, dword [ebp - 0x12f8]
mov dword [eax + edi*4], edx
inc edi
mov dword [ebp - 0x1248], edi
mov eax, dword [ebp - 0x1244]
inc eax
mov dword [ebp - 0x1244], eax
cmp dword [ebp - 0x1244], ecx
jle 0x4cb4de
mov eax, dword [ebp - 0x1248]
cmp dword [ebp - 0x124c], eax
jge 0x4cb68c
mov edx, dword [ebp - 0x1254]
mov eax, dword [ebp - 0x1260]
mov ecx, dword [ebp - 0x1258]
mov edi, dword [ebp - 0x125c]
inc eax
mov dword [ebp + edx*4 - 0xea8], ecx
mov dword [ebp + edx*4 - 0x1038], edi
mov dword [ebp + edx*4 - 0x11c8], eax
inc edx
mov dword [ebp - 0x1254], edx
mov edi, dword [ebp - 0x1254]
test edi, edi
jg 0x4ca004
mov eax, dword [ebp - 0x11fc]
jmp 0x4caf29
jle 0x4cb54a
cmp dword [ebp - 0x1244], ecx
jg 0x4cb563
mov edi, dword [ebp - 0x1200]
mov edx, dword [edi + ecx*4]
mov edi, dword [ebp - 0x1204]
lea eax, [edx + edi]
mov edi, dword [ebp - 0x1260]
mov al, byte [eax + edi]
mov edi, dword [ebp - 0x12f0]
and eax, 0xff
sub eax, edi
cmp eax, 0
jne 0x4cb61f
mov edi, dword [ebp - 0x1200]
mov eax, dword [ebp - 0x124c]
mov eax, dword [edi + eax*4]
mov dword [edi + ecx*4], eax
mov eax, dword [ebp - 0x124c]
mov dword [edi + eax*4], edx
dec eax
mov dword [ebp - 0x124c], eax
dec ecx
jmp 0x4cb5c5
jge 0x4cb61c
cmp dword [ebp - 0x1244], ecx
jg 0x4cb563
mov edx, dword [ebp - 0x1244]
mov edi, dword [ebp - 0x1200]
mov eax, dword [ebp - 0x1244]
mov edx, dword [edi + edx*4]
mov edi, dword [edi + ecx*4]
mov dword [ebp - 0x12f8], edx
mov edx, dword [ebp - 0x1200]
mov dword [edx + eax*4], edi
mov edi, dword [ebp - 0x12f8]
mov dword [edx + ecx*4], edi
inc eax
dec ecx
jmp 0x4cb551
sub esp, 0xc
push 0x3e9
call fcn.004be4f0
add esp, 0x10
jmp 0x4ca011
mov eax, dword [ebp - 0x11fc]
test eax, eax
jns 0x4cb5aa
jmp 0x4caf29
mov eax, dword [ebp - 0x1244]
mov edi, dword [ebp - 0x1248]
sub eax, edi
mov edx, dword [ebp - 0x1258]
mov dword [ebp - 0x1250], eax
mov eax, dword [ebp - 0x1248]
sub eax, edx
cmp dword [ebp - 0x1250], eax
jle 0x4cb6bc
mov dword [ebp - 0x1250], eax
mov eax, dword [ebp - 0x1250]
mov edi, dword [ebp - 0x1244]
sub edi, eax
mov edx, dword [ebp - 0x1258]
mov eax, dword [ebp - 0x1250]
mov dword [ebp - 0x1284], edx
mov dword [ebp - 0x12f0], edi
mov dword [ebp - 0x1288], eax
jmp 0x4cb747
mov edi, dword [ebp - 0x1200]
mov edx, dword [ebp - 0x1284]
mov eax, dword [ebp - 0x12f0]
mov edx, dword [edi + edx*4]
mov dword [ebp - 0x12f8], edx
mov edx, dword [ebp - 0x1284]
mov eax, dword [edi + eax*4]
mov dword [edi + edx*4], eax
mov eax, dword [ebp - 0x12f0]
mov edx, dword [ebp - 0x12f8]
mov dword [edi + eax*4], edx
inc eax
mov dword [ebp - 0x12f0], eax
mov eax, dword [ebp - 0x1288]
mov edx, dword [ebp - 0x1284]
dec eax
inc edx
mov dword [ebp - 0x1288], eax
mov dword [ebp - 0x1284], edx
mov eax, dword [ebp - 0x1288]
test eax, eax
jg 0x4cb6ea
mov edx, dword [ebp - 0x124c]
mov eax, dword [ebp - 0x125c]
mov edi, dword [ebp - 0x124c]
sub edx, ecx
sub eax, edi
cmp edx, eax
jle 0x4cb767
mov edx, eax
mov eax, dword [ebp - 0x125c]
mov edi, dword [ebp - 0x1244]
sub eax, edx
mov dword [ebp - 0x128c], edi
inc eax
test edx, edx
mov dword [ebp - 0x12f0], eax
mov dword [ebp - 0x1290], edx
jmp 0x4cb7eb
mov edx, dword [ebp - 0x1200]
mov eax, dword [ebp - 0x128c]
mov edi, dword [ebp - 0x12f0]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x12f8], eax
mov eax, dword [ebp - 0x128c]
mov edi, dword [edx + edi*4]
mov dword [edx + eax*4], edi
mov edi, dword [ebp - 0x12f0]
mov eax, dword [ebp - 0x12f8]
mov dword [edx + edi*4], eax
mov eax, dword [ebp - 0x128c]
inc eax
inc edi
mov dword [ebp - 0x128c], eax
mov eax, dword [ebp - 0x1290]
dec eax
mov dword [ebp - 0x12f0], edi
mov dword [ebp - 0x1290], eax
mov eax, dword [ebp - 0x1290]
test eax, eax
jg 0x4cb78c
mov edi, dword [ebp - 0x1244]
mov eax, dword [ebp - 0x1258]
add eax, edi
mov edi, dword [ebp - 0x124c]
sub edi, ecx
mov edx, dword [ebp - 0x1248]
sub eax, edx
mov dword [ebp - 0x124c], edi
mov edi, dword [ebp - 0x124c]
mov ecx, dword [ebp - 0x125c]
lea edx, [eax - 1]
sub ecx, edi
mov dword [ebp - 0x12f8], ecx
mov edi, dword [ebp - 0x1258]
mov dword [ebp - 0x12c0], edx
mov dword [ebp - 0x1250], edx
mov dword [ebp - 0x12e0], edx
mov edx, dword [ebp - 0x1260]
mov dword [ebp - 0x12cc], edi
mov dword [ebp - 0x12b4], edx
mov dword [ebp - 0x12b8], edx
mov dword [ebp - 0x12d4], edx
mov dword [ebp - 0x12d0], eax
inc edx
mov eax, dword [ebp - 0x12f8]
mov dword [ebp - 0x12e4], edi
mov dword [ebp - 0x12c8], eax
lea edi, [ecx + 1]
mov eax, dword [ebp - 0x12cc]
mov ecx, dword [ebp - 0x125c]
mov dword [ebp - 0x12bc], edx
mov edx, dword [ebp - 0x12c0]
sub edx, eax
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x12dc], edi
mov dword [ebp - 0x12d8], ecx
cmp edx, eax
jge 0x4cb8d8
mov dword [ebp - 0x12cc], edi
mov dword [ebp - 0x12e4], edi
mov dword [ebp - 0x12c0], ecx
mov edi, dword [ebp - 0x1258]
mov dword [ebp - 0x12e0], ecx
mov ecx, dword [ebp - 0x1250]
mov dword [ebp - 0x12dc], edi
mov dword [ebp - 0x12d8], ecx
mov eax, dword [ebp - 0x12c8]
mov edx, ecx
sub eax, dword [ebp - 0x12d0]
sub edx, edi
mov dword [ebp - 0x1294], ecx
mov dword [ebp - 0x1298], edi
cmp edx, eax
jge 0x4cba5b
mov edx, dword [ebp - 0x1298]
mov eax, dword [ebp - 0x1294]
mov edi, dword [ebp - 0x12d0]
mov ecx, dword [ebp - 0x12c8]
mov dword [ebp - 0x12d0], edx
mov dword [ebp - 0x11d0], edx
mov dword [ebp - 0x12c8], eax
mov edx, dword [ebp - 0x12bc]
mov dword [ebp - 0x11e0], eax
mov eax, dword [ebp - 0x1260]
mov dword [ebp - 0x12dc], edi
mov dword [ebp - 0x12d8], ecx
mov dword [ebp - 0x12b8], edx
mov dword [ebp - 0x12d4], edx
mov dword [ebp - 0x12bc], eax
mov dword [ebp - 0x11f0], eax
mov eax, dword [ebp - 0x12c0]
mov edx, dword [ebp - 0x12cc]
mov dword [ebp - 0x129c], eax
mov dword [ebp - 0x12a0], edx
mov edx, eax
mov eax, dword [ebp - 0x12cc]
sub edx, eax
mov eax, ecx
sub eax, edi
cmp edx, eax
jge 0x4cba84
mov eax, dword [ebp - 0x12b8]
mov edx, dword [ebp - 0x1260]
mov dword [ebp - 0x12cc], edi
mov dword [ebp - 0x11d8], edi
mov dword [ebp - 0x12c0], ecx
mov edi, dword [ebp - 0x12a0]
mov dword [ebp - 0x11e8], ecx
mov ecx, dword [ebp - 0x129c]
mov dword [ebp - 0x11d4], edi
mov dword [ebp - 0x11e4], ecx
mov dword [ebp - 0x12b4], eax
mov dword [ebp - 0x11f8], eax
mov dword [ebp - 0x12b8], edx
mov dword [ebp - 0x11f4], edx
mov eax, dword [ebp - 0x1254]
mov edx, dword [ebp - 0x12cc]
mov dword [ebp + eax*4 - 0xea8], edx
mov edx, dword [ebp - 0x12c0]
mov dword [ebp + eax*4 - 0x1038], edx
mov edx, dword [ebp - 0x12b4]
mov dword [ebp + eax*4 - 0x11c8], edx
inc eax
mov edx, dword [ebp - 0x12c8]
mov dword [ebp + eax*4 - 0x1038], ecx
mov ecx, dword [ebp - 0x12b8]
mov dword [ebp + eax*4 - 0xea8], edi
mov dword [ebp + eax*4 - 0x11c8], ecx
inc eax
mov edi, dword [ebp - 0x12d0]
mov ecx, dword [ebp - 0x12bc]
mov dword [ebp + eax*4 - 0xea8], edi
mov dword [ebp + eax*4 - 0x1038], edx
mov dword [ebp + eax*4 - 0x11c8], ecx
inc eax
mov dword [ebp - 0x1254], eax
jmp 0x4cb5aa
mov edx, dword [ebp - 0x12bc]
mov eax, dword [ebp - 0x12c8]
mov dword [ebp - 0x11f0], edx
mov edx, dword [ebp - 0x12d0]
mov dword [ebp - 0x11e0], eax
mov dword [ebp - 0x11d0], edx
jmp 0x4cb95c
mov eax, dword [ebp - 0x12d4]
mov edx, dword [ebp - 0x12d8]
mov dword [ebp - 0x11f4], eax
mov dword [ebp - 0x11e4], edx
mov eax, dword [ebp - 0x12dc]
mov edx, dword [ebp - 0x1260]
mov dword [ebp - 0x11d4], eax
mov dword [ebp - 0x11f8], edx
mov eax, dword [ebp - 0x12e0]
mov edx, dword [ebp - 0x12e4]
mov dword [ebp - 0x11e8], eax
mov dword [ebp - 0x11d8], edx
jmp 0x4cb9de
sub eax, edi
inc eax
push edx
push edx
push eax
mov eax, dword [ebp - 0x1224]
push eax
mov eax, dword [ebp - 0x1218]
push eax
mov eax, dword [ebp - 0x121c]
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str.________qsort__0x_x__0x_x____done__d___this__d_n
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x20
jmp 0x4c9fd8
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
push 0x1b
push 1
push str.________bucket_sorting_..._n
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x4c9cea