Function at 0x6c284abc
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x10c
mov eax, dword [esp + 0x120]
mov dword [0x6c4b3348], 0
mov dword [0x6c4b3358], eax
add eax, dword [esp + 0x124]
mov dword [0x6c4b3360], eax
cmp dword [esp + 0x134], 4
ja 0x6c28508d
mov dword [0x6c4b3364], 0
xor eax, eax
call fcn.6c284660
test eax, eax
jne 0x6c284b39
call fcn.6c281394
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
inc dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x1c], ebx
jne 0x6c2850ec
call fcn.6c283840
movzx eax, al
cmp eax, 0xd9
je 0x6c284b6b
cmp eax, 0xda
je 0x6c284e1b
call fcn.6c2835f4
test eax, eax
je 0x6c284b0b
call fcn.6c283840
movzx eax, al
cmp eax, 0xd9
jne 0x6c284b48
mov ecx, dword [esp + 0x134]
test ecx, ecx
je 0x6c2854f2
mov eax, dword [0x6c4b3354]
test eax, eax
jle 0x6c2857bc
mov edx, dword [0x6c4b334c]
mov dword [esp + 0x38], edx
mov ecx, dword [0x6c4b3350]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], 0x6c4b33a4
mov dword [esp + 0x40], 0
add ecx, 3
mov eax, edx
add eax, 3
imul eax, ecx
mov dword [esp + 0x60], eax
inc edx
shr edx, 1
mov dword [esp + 0x4c], edx
shl edx, 1
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0x3c]
inc ebx
shr ebx, 1
mov dword [esp + 0x58], ebx
lea esi, [ebx - 1]
mov dword [esp + 0x5c], esi
lea eax, [ebx + ebx - 1]
imul eax, edx
mov dword [esp + 0x78], eax
mov edi, dword [esp + 0x4c]
imul edi, esi
mov dword [esp + 0x7c], edi
nop
cmp dword [esp + 0x134], 2
jg 0x6c284c06
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x6c284d5a
mov ebp, dword [esp + 0x34]
mov esi, dword [ebp - 0x20]
mov ebx, dword [0x6c4b3440]
cmp esi, ebx
jne 0x6c284c25
mov eax, dword [0x6c4b3444]
cmp dword [ebp - 0x1c], eax
je 0x6c284d5a
mov edx, dword [esp + 0x60]
mov dword [esp], edx
call sub.msvcrt.dll_malloc
mov dword [esp + 0x48], eax
test eax, eax
je 0x6c2855a8
lea eax, [esi + esi]
cmp ebx, eax
je 0x6c2851c3
cmp esi, ebx
je 0x6c2853c3
cmp ebx, eax
jne 0x6c285576
mov ecx, dword [0x6c4b3444]
mov edx, dword [esp + 0x34]
cmp dword [edx - 0x1c], ecx
jne 0x6c285576
mov ebx, dword [edx]
mov dword [esp + 0x20], ebx
mov ecx, dword [edx + 8]
cmp dword [esp + 0x4c], 1
je 0x6c2854af
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x6c2854e5
mov edi, dword [esp + 0x4c]
dec edi
lea ebp, [edi + edi]
mov dword [esp + 0x24], ebp
mov edx, dword [esp + 0x28]
mov dword [esp + 0x50], edx
mov ebp, dword [esp + 0x4c]
add ebp, ecx
mov esi, dword [esp + 0x48]
mov dword [esp + 0x1c], 0
lea esi, [esi]
mov al, byte [ecx]
mov byte [esi], al
movzx eax, byte [ecx]
lea edx, [eax + eax*2]
movzx eax, byte [ecx + 1]
add eax, edx
sar eax, 2
mov byte [esi + 1], al
cmp edi, 1
jle 0x6c284cfc
mov eax, 1
movzx edx, byte [ecx + eax]
lea ebx, [edx + edx*2]
movzx edx, byte [ecx + eax - 1]
add edx, ebx
sar edx, 2
mov byte [esi + eax*2 - 2], dl
movzx edx, byte [ecx + eax + 1]
add ebx, edx
sar ebx, 2
mov byte [esi + eax*2 - 1], bl
inc eax
cmp eax, edi
jl 0x6c284cd4
movzx eax, byte [ebp - 2]
lea edx, [eax + eax*2]
movzx eax, byte [ebp - 1]
add eax, edx
sar eax, 2
mov ebx, dword [esp + 0x24]
mov byte [esi + ebx], al
mov al, byte [ebp - 1]
mov edx, dword [esp + 0x28]
mov byte [esi + edx - 1], al
add esi, edx
add ecx, dword [esp + 0x20]
inc dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x3c], ebx
jne 0x6c284cb4
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x34]
mov dword [edx], ecx
mov eax, dword [edx + 8]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x34]
mov dword [ebx + 8], eax
inc dword [esp + 0x40]
add dword [esp + 0x34], 0x30
mov edx, dword [esp + 0x40]
cmp edx, dword [0x6c4b3354]
jl 0x6c284bf0
mov eax, dword [esp + 0x38]
imul eax, dword [esp + 0x3c]
imul eax, dword [esp + 0x134]
inc eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x20], eax
cmp dword [esp + 0x134], 2
jg 0x6c2855ce
mov ebp, dword [esp + 0x3c]
test ebp, ebp
je 0x6c285527
mov edi, dword [0x6c4b33a4]
mov ebp, dword [0x6c4b33ac]
mov eax, dword [0x6c4b334c]
mov dword [esp + 0x1c], eax
xor esi, esi
mov dword [esp + 0x24], ebp
mov ebx, dword [esp + 0x38]
mov ebp, edi
imul ebp, esi
add ebp, dword [esp + 0x24]
mov eax, esi
imul eax, ebx
imul eax, dword [esp + 0x134]
add eax, dword [esp + 0x20]
cmp dword [esp + 0x134], 1
je 0x6c285506
test ebx, ebx
je 0x6c284e0a
xor edx, edx
mov cl, byte [ebp + edx]
mov byte [eax], cl
mov byte [eax + 1], 0xff
add eax, 2
inc edx
cmp edx, ebx
jne 0x6c284df8
inc esi
cmp esi, dword [esp + 0x3c]
je 0x6c285527
mov ebx, dword [esp + 0x1c]
jmp 0x6c284dca
call fcn.6c282a58
mov ebx, eax
call fcn.6c282974
mov dword [0x6c4b345c], eax
lea edx, [eax - 1]
cmp edx, 3
ja 0x6c284e44
cmp eax, dword [0x6c4b3354]
jg 0x6c284e44
lea eax, [eax + eax + 6]
cmp ebx, eax
je 0x6c284e53
mov dword [0x6c4b3340], str.Corrupt_JPEG
jmp 0x6c284b0b
xor esi, esi
call fcn.6c282974
mov ebx, eax
call fcn.6c282974
mov edi, dword [0x6c4b3354]
cmp edi, 0
jle 0x6c285080
cmp ebx, dword [0x6c4b3380]
je 0x6c285086
mov ecx, 0x6c4b33b0
xor edx, edx
nop
inc edx
cmp edx, edi
je 0x6c284b0b
add ecx, 0x30
cmp ebx, dword [ecx - 0x30]
jne 0x6c284e84
mov ebx, eax
sar ebx, 4
lea ecx, [edx + edx*2]
shl ecx, 4
lea edi, [ecx + 0x6c4b3390]
mov dword [ecx + 0x6c4b3390], ebx
cmp ebx, 3
jg 0x6c284e44
and eax, 0xf
mov dword [edi + 4], eax
cmp eax, 3
jg 0x6c284e44
mov dword [esi*4 + 0x6c4b3460], edx
inc esi
cmp esi, dword [0x6c4b345c]
jl 0x6c284e55
call fcn.6c282974
test eax, eax
jne 0x6c284e44
call fcn.6c282974
call fcn.6c282974
test eax, eax
jne 0x6c284e44
call fcn.6c280ed0
cmp dword [0x6c4b345c], 1
je 0x6c2850ae
mov ebx, dword [0x6c4b3458]
test ebx, ebx
jle 0x6c284b39
mov dword [esp + 0x28], 0
mov ebx, dword [0x6c4b3454]
test ebx, ebx
jle 0x6c285067
mov dword [esp + 0x24], 0
mov esi, dword [0x6c4b345c]
test esi, esi
jle 0x6c285040
mov dword [esp + 0x2c], 0
mov esi, dword [esp + 0x2c]
mov esi, dword [esi*4 + 0x6c4b3460]
mov dword [esp + 0x1c], esi
lea ebx, [esi + esi*2]
shl ebx, 4
mov esi, dword [ebx + 0x6c4b3388]
test esi, esi
jle 0x6c28502c
mov dword [esp + 0x20], 0
mov edi, dword [ebx + 0x6c4b3384]
test edi, edi
jle 0x6c28501e
xor ebp, ebp
nop
mov eax, dword [ebx + 0x6c4b3394]
lea edx, [eax + eax*2]
lea edx, [eax + edx*4]
lea ecx, [eax + edx*8]
shl ecx, 4
add ecx, 0x6c4b3480
mov eax, dword [ebx + 0x6c4b3390]
lea edx, [eax + eax*2]
lea edx, [eax + edx*4]
lea edx, [eax + edx*8]
shl edx, 4
add edx, 0x6c4b4ec0
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
lea eax, [esp + 0x80]
call fcn.6c284970
test eax, eax
je 0x6c284b0b
mov edx, dword [ebx + 0x6c4b33a4]
mov eax, dword [esp + 0x28]
imul eax, esi
add eax, dword [esp + 0x20]
shl eax, 3
imul eax, edx
imul edi, dword [esp + 0x24]
add edi, ebp
lea eax, [eax + edi*8]
add eax, dword [ebx + 0x6c4b33ac]
lea esi, [ebx + 0x6c4b3380]
mov ecx, dword [esi + 0xc]
shl ecx, 6
add ecx, 0x6c4b6900
mov dword [esp], ecx
lea ecx, [esp + 0x80]
call fcn.6c281bf0
inc ebp
mov edi, dword [esi + 4]
mov esi, dword [esi + 8]
cmp ebp, edi
jl 0x6c284f7c
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jl 0x6c284f6a
inc dword [esp + 0x2c]
mov ebx, dword [esp + 0x2c]
cmp ebx, dword [0x6c4b345c]
jl 0x6c284f3f
mov eax, dword [0x6c4b6a00]
dec eax
mov dword [0x6c4b6a00], eax
test eax, eax
jle 0x6c2857d5
inc dword [esp + 0x24]
mov esi, dword [esp + 0x24]
cmp esi, dword [0x6c4b3454]
jl 0x6c284f29
inc dword [esp + 0x28]
mov edi, dword [esp + 0x28]
cmp edi, dword [0x6c4b3458]
jl 0x6c284f13
jmp 0x6c284b39
je 0x6c284b0b
xor edx, edx
jmp 0x6c284e95
mov dword [0x6c4b3340], str.Internal_error
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [0x6c4b3460]
lea eax, [edi + edi*2]
mov edx, eax
shl edx, 4
mov ebp, dword [edx + 0x6c4b339c]
add ebp, 7
sar ebp, 3
mov edx, dword [edx + 0x6c4b33a0]
add edx, 7
sar edx, 3
mov dword [esp + 0x20], edx
test edx, edx
jle 0x6c284b39
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], eax
test ebp, ebp
jle 0x6c284b27
xor esi, esi
mov ebx, dword [esp + 0x24]
shl ebx, 4
jmp 0x6c285109
inc esi
cmp esi, ebp
je 0x6c284b27
mov eax, dword [ebx + 0x6c4b3394]
lea edx, [eax + eax*2]
lea edx, [eax + edx*4]
lea ecx, [eax + edx*8]
shl ecx, 4
add ecx, 0x6c4b3480
mov eax, dword [ebx + 0x6c4b3390]
lea edx, [eax + eax*2]
lea edx, [eax + edx*4]
lea edx, [eax + edx*8]
shl edx, 4
add edx, 0x6c4b4ec0
mov dword [esp], edi
lea eax, [esp + 0x80]
call fcn.6c284970
test eax, eax
je 0x6c284b0b
mov edx, dword [ebx + 0x6c4b33a4]
mov eax, dword [esp + 0x1c]
imul eax, edx
add eax, esi
mov ecx, dword [ebx + 0x6c4b33ac]
lea eax, [ecx + eax*8]
mov ecx, dword [ebx + 0x6c4b338c]
shl ecx, 6
add ecx, 0x6c4b6900
mov dword [esp], ecx
lea ecx, [esp + 0x80]
call fcn.6c281bf0
mov eax, dword [0x6c4b6a00]
dec eax
mov dword [0x6c4b6a00], eax
test eax, eax
jg 0x6c285100
cmp dword [0x6c4b6a04], 0x17
jle 0x6c2851bc
mov al, byte [0x6c4b3448]
add eax, 0x30
cmp al, 7
ja 0x6c284b39
call fcn.6c280ed0
jmp 0x6c285100
call fcn.6c283524
jmp 0x6c2851a2
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx - 0x1c]
shl edx, 1
cmp edx, dword [0x6c4b3444]
jne 0x6c284c48
mov ebx, dword [ecx]
mov dword [esp + 0x6c], ebx
mov ebx, dword [ecx + 8]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x50], esi
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x6c2857b5
xor eax, eax
mov edi, dword [esp + 0x7c]
lea ecx, [ebx + edi]
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x78]
lea edx, [esi + ebp]
mov edi, edx
mov ebp, dword [esp + 0x4c]
mov dl, byte [ebx + eax]
mov byte [esi + eax*2 + 1], dl
mov byte [esi + eax*2], dl
mov dl, byte [ecx + eax]
mov byte [edi + eax*2 + 1], dl
mov byte [edi + eax*2], dl
inc eax
cmp ebp, eax
jne 0x6c28520f
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x58]
test eax, eax
je 0x6c28527d
mov edx, ebx
mov ebp, dword [esp + 0x28]
shl ebp, 1
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x28]
xor esi, esi
mov ebp, dword [esp + 0x28]
neg ebp
mov dword [esp + 0x20], ebx
mov cl, byte [edx]
mov byte [eax], cl
mov byte [eax + ebp], cl
mov cl, byte [edx + edi - 1]
mov ebx, dword [esp + 0x28]
mov byte [eax + ebx - 1], cl
mov byte [eax - 1], cl
inc esi
add edx, dword [esp + 0x4c]
add eax, dword [esp + 0x1c]
cmp dword [esp + 0x58], esi
jne 0x6c285254
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x5c]
test eax, eax
jle 0x6c284d3a
mov edi, ebx
mov esi, dword [esp + 0x28]
shl esi, 1
mov dword [esp + 0x70], esi
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x28]
lea ebp, [eax + ebp + 1]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x64], 0
mov edx, dword [esp + 0x28]
sub edx, 2
mov dword [esp + 0x74], edx
cmp dword [esp + 0x4c], 1
jle 0x6c2853b7
mov ebx, dword [esp + 0x6c]
add ebx, edi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x1c], ebx
mov esi, dword [esp + 0x54]
mov ebp, dword [esp + 0x28]
add ebp, esi
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x74]
add eax, esi
mov dword [esp + 0x44], eax
lea esi, [esi]
movzx edx, byte [edi]
mov dword [esp + 0x18], edx
movzx ecx, byte [edi + 1]
mov ebp, dword [esp + 0x1c]
movzx ebx, byte [ebp]
movzx edx, byte [ebp + 1]
mov eax, dword [esp + 0x18]
lea eax, [eax + eax*2]
mov dword [esp + 0x2c], eax
lea ebp, [ecx + ecx*2]
mov dword [esp + 0x24], ebp
lea eax, [ebx + ebx*2]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
lea ebp, [eax + eax*8]
add ebp, dword [esp + 0x24]
add ebp, dword [esp + 0x30]
add ebp, edx
sar ebp, 4
mov eax, ebp
mov byte [esi], al
lea ebp, [ecx + ecx*8]
add ebp, dword [esp + 0x2c]
add ebp, dword [esp + 0x24]
add ebp, ebx
sar ebp, 4
mov eax, ebp
mov byte [esi + 1], al
lea ebp, [edx + edx*2]
lea ebx, [ebx + ebx*8]
add ebx, ebp
add ebx, dword [esp + 0x2c]
add ecx, ebx
sar ecx, 4
mov ebx, dword [esp + 0x20]
mov byte [ebx], cl
lea edx, [edx + edx*8]
add edx, dword [esp + 0x30]
add edx, dword [esp + 0x24]
add edx, dword [esp + 0x18]
sar edx, 4
mov byte [ebx + 1], dl
add esi, 2
add ebx, 2
mov dword [esp + 0x20], ebx
inc edi
inc dword [esp + 0x1c]
cmp esi, dword [esp + 0x44]
jne 0x6c2852ec
inc dword [esp + 0x64]
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x70]
add dword [esp + 0x54], esi
mov ebp, dword [esp + 0x5c]
cmp dword [esp + 0x64], ebp
je 0x6c284d3a
cmp dword [esp + 0x4c], 1
jg 0x6c2852c3
mov ecx, dword [esp + 0x6c]
add edi, ecx
mov dword [esp + 0x68], edi
jmp 0x6c28538e
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx - 0x1c]
shl edx, 1
cmp edx, dword [0x6c4b3444]
jne 0x6c284c50
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x50], ebx
mov esi, dword [ecx]
mov dword [esp + 0x44], esi
mov ebp, dword [ecx + 8]
mov eax, dword [esp + 0x58]
test eax, eax
je 0x6c284d3a
mov edi, dword [esp + 0x48]
add edi, ebx
shl ebx, 1
mov dword [esp + 0x2c], ebx
mov ebx, ebp
mov esi, dword [esp + 0x48]
mov dword [esp + 0x20], 0
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x5c]
cmp dword [esp + 0x20], edx
je 0x6c28549b
mov ecx, dword [esp + 0x44]
add ecx, ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x6c28546b
xor eax, eax
mov dword [esp + 0x54], ebx
lea esi, [esi]
mov ecx, dword [esp + 0x54]
movzx edx, byte [ecx + eax]
lea ecx, [edx + edx*2]
movzx edx, byte [ebp + eax]
add edx, ecx
sar edx, 2
mov byte [esi + eax], dl
mov ebx, dword [esp + 0x1c]
movzx edx, byte [ebx + eax]
add ecx, edx
sar ecx, 2
mov byte [edi + eax], cl
inc eax
cmp dword [esp + 0x38], eax
jne 0x6c28543c
add esi, dword [esp + 0x2c]
add edi, dword [esp + 0x2c]
inc dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
cmp dword [esp + 0x58], ebp
je 0x6c284d3a
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x5c]
cmp dword [esp + 0x20], edx
jne 0x6c28541d
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x44]
lea eax, [ebx + eax]
mov dword [esp + 0x24], eax
jmp 0x6c28542b
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x6c2854d8
xor eax, eax
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x3c]
lea esi, [esi]
mov dl, byte [ecx]
mov byte [ebx + eax*2 + 1], dl
mov byte [ebx + eax*2], dl
inc eax
add ecx, esi
cmp edi, eax
jne 0x6c2854c8
mov dword [esp + 0x50], 2
jmp 0x6c284d3a
mov esi, dword [esp + 0x28]
mov dword [esp + 0x50], esi
jmp 0x6c284d3a
mov ebx, dword [0x6c4b3354]
mov dword [esp + 0x134], ebx
mov eax, ebx
jmp 0x6c284b7f
test ebx, ebx
je 0x6c284e0a
xor edx, edx
mov cl, byte [ebp + edx]
mov byte [eax + edx], cl
inc edx
cmp edx, ebx
jne 0x6c285510
inc esi
cmp esi, dword [esp + 0x3c]
jne 0x6c284e15
call fcn.6c281394
mov edx, dword [0x6c4b334c]
mov eax, dword [esp + 0x128]
mov dword [eax], edx
mov edx, dword [0x6c4b3350]
mov eax, dword [esp + 0x12c]
mov dword [eax], edx
mov esi, dword [esp + 0x130]
test esi, esi
je 0x6c284b18
mov eax, dword [0x6c4b3354]
mov ebx, dword [esp + 0x130]
mov dword [ebx], eax
mov eax, dword [esp + 0x20]
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sub.msvcrt.dll_free
call fcn.6c281394
mov dword [0x6c4b3340], 0x6c374fc4
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.6c281394
mov dword [0x6c4b3340], 0x6c374fa0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x6c285527
mov ecx, dword [0x6c4b33a4]
mov dword [esp + 0x54], ecx
mov ebx, dword [0x6c4b33ac]
mov dword [esp + 0x40], ebx
mov esi, dword [0x6c4b3354]
mov dword [esp + 0x44], esi
mov edi, dword [0x6c4b33d4]
mov dword [esp + 0x48], edi
mov ebp, dword [0x6c4b3404]
mov dword [esp + 0x4c], ebp
mov eax, dword [0x6c4b334c]
mov dword [esp + 0x50], eax
mov edx, dword [0x6c4b340c]
mov dword [esp + 0x24], edx
mov ecx, dword [0x6c4b33dc]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x54]
imul ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
imul eax, ecx
imul eax, dword [esp + 0x134]
add eax, dword [esp + 0x20]
cmp dword [esp + 0x44], 3
je 0x6c2856aa
test ecx, ecx
je 0x6c285682
xor edx, edx
mov esi, ecx
mov edi, dword [esp + 0x134]
nop
mov cl, byte [ebx + edx]
mov byte [eax + 2], cl
mov byte [eax + 1], cl
mov byte [eax], cl
mov byte [eax + 3], 0xff
add eax, edi
inc edx
cmp edx, esi
jne 0x6c28566c
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x24], ecx
mov ebx, dword [esp + 0x48]
add dword [esp + 0x28], ebx
mov esi, dword [esp + 0x3c]
cmp dword [esp + 0x1c], esi
je 0x6c285527
mov ecx, dword [esp + 0x50]
jmp 0x6c285635
test ecx, ecx
jle 0x6c285682
xor edx, edx
mov dword [esp + 0x30], ebx
mov ebx, edx
mov dword [esp + 0x34], ecx
jmp 0x6c2856d0
mov dl, byte [eax + 3]
mov byte [eax + 3], dl
add eax, dword [esp + 0x134]
inc ebx
cmp dword [esp + 0x34], ebx
je 0x6c285682
mov edi, dword [esp + 0x30]
movzx esi, byte [edi + ebx]
shl esi, 0x10
add esi, 0x8000
mov ebp, dword [esp + 0x24]
movzx edx, byte [ebp + ebx]
add edx, 0xffffff80
mov edi, dword [esp + 0x28]
movzx ecx, byte [edi + ebx]
add ecx, 0xffffff80
lea edi, [edx + edx*4]
lea ebp, [edx + edi*8]
lea edi, [ebp*8]
sub edi, ebp
lea edi, [edx + edi*8]
lea edi, [edi + edi*4]
lea edi, [edx + edi*8]
add edi, esi
mov dword [esp + 0x38], edi
lea edi, [edx + edx*8]
lea edi, [edx + edi*8]
lea edi, [edi + edi*4]
lea edi, [edx + edi*2]
lea edi, [edx + edi*4]
lea edi, [edx + edi*8]
lea edx, [ecx + ecx*4]
lea edx, [ecx + edx*2]
lea edx, [ecx + edx*8]
lea edx, [ecx + edx*2]
mov ebp, edx
shl ebp, 6
sub edx, ebp
sub edx, edi
lea edx, [esi + edx*2]
lea edi, [ecx + ecx*2]
lea edi, [edi + edi*4]
mov ebp, edi
shl ebp, 7
add edi, ebp
lea edi, [ecx + edi*2]
mov ecx, edi
shl ecx, 4
sub ecx, edi
lea ecx, [esi + ecx*2]
mov esi, dword [esp + 0x38]
sar esi, 0x10
sar edx, 0x10
sar ecx, 0x10
cmp esi, 0xff
jbe 0x6c285778
mov esi, dword [esp + 0x38]
sar esi, 0x1f
not esi
cmp edx, 0xff
jbe 0x6c285785
sar edx, 0x1f
not edx
mov edi, edx
cmp ecx, 0xff
jbe 0x6c285794
sar ecx, 0x1f
not ecx
mov edx, esi
mov byte [eax], dl
mov edx, edi
mov byte [eax + 1], dl
mov byte [eax + 2], cl
cmp dword [esp + 0x134], 4
jne 0x6c2856bc
mov dl, 0xff
jmp 0x6c2856bf
xor edi, edi
jmp 0x6c28522c
mov esi, dword [0x6c4b334c]
mov dword [esp + 0x38], esi
mov edi, dword [0x6c4b3350]
mov dword [esp + 0x3c], edi
jmp 0x6c284d73
cmp dword [0x6c4b6a04], 0x17
jg 0x6c2857e3
call fcn.6c283524
mov al, byte [0x6c4b3448]
add eax, 0x30
cmp al, 7
ja 0x6c284b39
call fcn.6c280ed0
jmp 0x6c285053