Function at 0x6c285f34
Capabilities:
Encrypt data using rc4 ksa
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x48c
mov dword [esp + 0x24], eax
mov dword [esp + 0x64], edx
mov esi, 1
xor ebx, ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov byte [esp + 0x5f], 0
mov byte [esp + 0x5e], 0
call fcn.6c282a74
mov ebp, eax
call fcn.6c282a74
test esi, esi
je 0x6c285b58
cmp eax, 0x49484452
jne 0x6c285cd0
cmp ebp, 0xd
jne 0x6c285cd0
call fcn.6c282a74
mov dword [0x6c4b334c], eax
cmp eax, 0x1000000
ja 0x6c286759
call fcn.6c282a74
mov dword [0x6c4b3350], eax
cmp eax, 0x1000000
ja 0x6c286759
call fcn.6c282974
cmp eax, 8
jne 0x6c2867a0
call fcn.6c282974
mov edi, eax
cmp eax, 6
jg 0x6c285cd0
cmp eax, 3
je 0x6c286594
test al, 1
jne 0x6c285cd0
call fcn.6c282974
test eax, eax
jne 0x6c285cd0
call fcn.6c282974
test eax, eax
jne 0x6c285cd0
call fcn.6c282974
test eax, eax
jne 0x6c28677b
mov esi, dword [0x6c4b334c]
test esi, esi
je 0x6c285cd0
mov ecx, dword [0x6c4b3350]
test ecx, ecx
je 0x6c285cd0
cmp byte [esp + 0x5e], 0
jne 0x6c285da1
mov eax, edi
and eax, 2
cmp eax, 1
sbb eax, eax
and eax, 0xfffffffe
xor edx, edx
and edi, 4
setne dl
lea edi, [eax + edx + 3]
mov dword [0x6c4b3354], edi
mov eax, 0x40000000
xor edx, edx
div esi
xor edx, edx
div edi
cmp ecx, eax
ja 0x6c2867e8
cmp dword [esp + 0x24], 2
jne 0x6c285b8d
mov eax, 1
add esp, 0x48c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 0x49484452
je 0x6c285cd0
ja 0x6c285ba8
cmp eax, 0x49444154
je 0x6c285c65
cmp eax, 0x49454e44
je 0x6c285dc4
test eax, 0x20000000
je 0x6c2867b1
mov eax, ebp
call fcn.6c2823a0
call fcn.6c282974
call fcn.6c282974
call fcn.6c282974
call fcn.6c282974
xor esi, esi
jmp 0x6c285a3b
cmp eax, 0x504c5445
je 0x6c285c09
cmp eax, 0x74524e53
jne 0x6c285b7b
mov eax, dword [0x6c4b836c]
test eax, eax
jne 0x6c285cd0
cmp byte [esp + 0x5e], 0
je 0x6c285ce7
cmp dword [esp + 0x24], 2
je 0x6c2867f9
test ebx, ebx
je 0x6c285cd0
cmp ebp, ebx
ja 0x6c285cd0
test ebp, ebp
je 0x6c285c02
xor edi, edi
lea esi, [esp + 0x78]
nop
call fcn.6c282974
mov byte [esi + edi*4 + 3], al
inc edi
cmp edi, ebp
jne 0x6c285bf4
mov byte [esp + 0x5e], 4
jmp 0x6c285b8d
cmp ebp, 0x300
ja 0x6c285cd0
mov eax, 0xaaaaaaab
mul ebp
mov ebx, edx
shr ebx, 1
lea eax, [ebx + ebx*2]
cmp ebp, eax
jne 0x6c285cd0
test ebx, ebx
je 0x6c285b8d
xor edi, edi
lea esi, [esp + 0x78]
lea esi, [esi]
call fcn.6c282974
mov byte [esi + edi*4], al
call fcn.6c282974
mov byte [esi + edi*4 + 1], al
call fcn.6c282974
mov byte [esi + edi*4 + 2], al
mov byte [esi + edi*4 + 3], 0xff
inc edi
cmp edi, ebx
jne 0x6c285c3c
jmp 0x6c285b8d
cmp byte [esp + 0x5e], 0
jne 0x6c285ccb
cmp dword [esp + 0x24], 2
je 0x6c28678c
mov edx, dword [esp + 0x1c]
add edx, ebp
cmp edx, dword [esp + 0x20]
ja 0x6c285d1c
mov eax, dword [0x6c4b836c]
mov ecx, dword [0x6c4b3348]
test ecx, ecx
je 0x6c285d86
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebp
mov dword [esp + 4], 1
add eax, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_fread
cmp ebp, eax
mov edx, dword [esp + 0x18]
jne 0x6c285cd0
mov dword [esp + 0x1c], edx
jmp 0x6c285b8d
test ebx, ebx
jne 0x6c285c6c
nop
mov dword [0x6c4b3340], str.Corrupt_PNG
xor eax, eax
add esp, 0x48c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x6c4b3354]
test al, 1
je 0x6c285cd0
lea edx, [eax + eax]
cmp ebp, edx
jne 0x6c285cd0
test eax, eax
jle 0x6c285d12
xor esi, esi
call fcn.6c282a58
mov byte [esp + esi + 0x47d], al
inc esi
cmp esi, dword [0x6c4b3354]
jl 0x6c285cfd
mov byte [esp + 0x5f], 1
jmp 0x6c285b8d
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x6c285f24
cmp ebp, 0x1000
mov ecx, 0x1000
cmovae ecx, ebp
mov dword [esp + 0x20], ecx
cmp edx, ecx
jbe 0x6c285d4e
mov eax, ecx
shl eax, 1
cmp edx, eax
ja 0x6c285f28
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [0x6c4b836c]
mov dword [esp], eax
mov dword [esp + 0x18], edx
call sub.msvcrt.dll_realloc
test eax, eax
mov edx, dword [esp + 0x18]
je 0x6c28674a
mov dword [0x6c4b836c], eax
mov ecx, dword [0x6c4b3348]
test ecx, ecx
jne 0x6c285c9a
mov esi, dword [0x6c4b3358]
add eax, dword [esp + 0x1c]
mov edi, eax
mov ecx, ebp
rep movsb byte es:[edi], byte [esi]
mov dword [0x6c4b3358], esi
jmp 0x6c285cc2
mov dword [0x6c4b3354], 1
mov eax, 0x10000000
xor edx, edx
div esi
cmp ecx, eax
jbe 0x6c285b8d
jmp 0x6c285cd0
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x6c285b45
mov eax, dword [0x6c4b836c]
test eax, eax
je 0x6c286585
lea edx, [esp + 0x478]
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.6c2859e0
mov esi, eax
mov dword [0x6c4b8368], eax
test eax, eax
je 0x6c28659e
mov eax, dword [0x6c4b836c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [0x6c4b836c], 0
mov ebx, dword [0x6c4b3354]
lea edx, [ebx + 1]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x64]
cmp edx, ecx
je 0x6c286272
cmp byte [esp + 0x5f], 0
je 0x6c285fb1
mov edx, dword [esp + 0x24]
mov dword [0x6c4b335c], edx
mov ecx, dword [esp + 0x478]
mov dword [esp + 0x1c], ecx
mov ebp, dword [0x6c4b334c]
mov edi, dword [0x6c4b3350]
mov eax, edi
imul eax, ebp
imul eax, dword [esp + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6c4b8364], eax
test eax, eax
je 0x6c28674a
mov edx, ebx
imul edx, ebp
inc edx
imul edx, edi
cmp dword [esp + 0x1c], edx
jne 0x6c285cd0
test edi, edi
je 0x6c2865a5
movzx ecx, byte [esi]
cmp ecx, 4
jg 0x6c285cd0
imul ebp, dword [esp + 0x24]
mov dword [esp + 0x58], ebp
mov edi, eax
sub edi, ebp
inc esi
mov edx, dword [0x6c4b3354]
mov dword [esp + 0x54], edx
mov edx, dword [0x6c4b334c]
mov dword [esp + 0x40], edx
mov ebp, dword [0x6c4b3350]
mov dword [esp + 0x60], ebp
mov edx, dword [esp + 0x58]
add edx, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x40]
dec edx
mov dword [esp + 0x68], edx
mov ebp, dword [esp + 0x24]
imul ebp, edx
mov dword [esp + 0x6c], ebp
nop
mov ebp, dword [esp + 0x48]
test ebp, ebp
jne 0x6c285f0b
movzx ecx, byte [ecx + 0x6c375468]
test ebx, ebx
jle 0x6c28657e
xor edx, edx
lea esi, [esi]
cmp ecx, 6
ja case.default.0x6c285f1d
jmp dword [ecx*4 + str.4__l4__l]
mov eax, dword [esp + 0x20]
shl eax, 1
cmp edx, eax
ja 0x6c285f28
jmp 0x6c285d4a
mov bl, byte [esi + edx]
mov byte [eax + edx], bl
inc edx
cmp edx, dword [esp + 0x54]
jl 0x6c285f18
mov ebx, dword [esp + 0x54]
mov edx, ebx
cmp dword [esp + 0x24], edx
je 0x6c2862ce
mov byte [eax + edx], 0xff
lea ebp, [edx + 1]
cmp dword [esp + 0x24], ebp
jne 0x6c286829
add ebx, esi
mov dword [esp + 0x44], ebx
add eax, dword [esp + 0x24]
add edi, dword [esp + 0x24]
cmp ecx, 6
ja case.default.0x6c2862ec
cmp dword [esp + 0x40], 1
jmp dword [ecx*4 + 0x6c3750c4]
movzx ebp, byte [edi + edx]
mov bl, byte [esi + edx]
add ebp, ebx
mov ebx, ebp
mov byte [eax + edx], bl
jmp case.default.0x6c285f1d
mov bl, byte [edi + edx]
shr bl, 1
mov byte [esp + 0x1c], bl
mov bl, byte [esi + edx]
add byte [esp + 0x1c], bl
mov bl, byte [esp + 0x1c]
mov byte [eax + edx], bl
jmp case.default.0x6c285f1d
mov dword [0x6c4b335c], ebx
mov ebp, dword [esp + 0x478]
mov dword [esp + 0x1c], ebp
mov ebp, dword [0x6c4b334c]
mov dword [esp + 0x24], ebx
jmp 0x6c285e5d
jbe case.default.0x6c2862ec
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x4c], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], edx
nop
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jle 0x6c28628c
xor eax, eax
mov ebx, dword [esp + 0x30]
sub ebx, dword [esp + 0x24]
mov dword [esp + 0x38], ebx
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
jmp 0x6c28603a
cmp dword [esp + 0x14], edx
jg 0x6c286091
mov ecx, edi
add ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov byte [edx + eax], cl
inc eax
cmp eax, dword [esp + 0x2c]
je 0x6c28628c
mov ecx, dword [esp + 0x34]
mov cl, byte [ecx + eax]
mov byte [esp + 0x1c], cl
mov ebx, dword [esp + 0x38]
movzx ecx, byte [ebx + eax]
mov edx, dword [esp + 0x30]
movzx esi, byte [edx + eax]
mov ebx, dword [esp + 0x3c]
movzx edi, byte [ebx + eax]
lea edx, [esi + edi]
sub edx, ecx
mov ebx, edx
sub ebx, edi
mov ebp, ebx
neg ebp
test ebx, ebx
cmovs ebx, ebp
mov dword [esp + 0x14], ebx
mov ebx, edx
sub ebx, esi
mov ebp, ebx
neg ebp
test ebx, ebx
cmovs ebx, ebp
sub edx, ecx
mov ebp, edx
neg ebp
test edx, edx
cmovs edx, ebp
cmp dword [esp + 0x14], ebx
jle 0x6c28601c
cmp ebx, edx
cmovle ecx, esi
jmp 0x6c286024
jbe case.default.0x6c2862ec
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], edx
nop
mov esi, dword [esp + 0x1c]
test esi, esi
jle 0x6c2860d6
xor edx, edx
mov esi, eax
sub esi, dword [esp + 0x24]
movzx ebx, byte [edi + edx]
movzx ecx, byte [esi + edx]
add ecx, ebx
sar ecx, 1
add cl, byte [ebp + edx]
mov byte [eax + edx], cl
inc edx
cmp edx, dword [esp + 0x1c]
jne 0x6c2860bc
inc dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov byte [eax + edx], 0xff
add ebp, edx
add eax, dword [esp + 0x24]
add edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x20], ecx
jne 0x6c2860ac
nop
imul edx, dword [esp + 0x68]
add dword [esp + 0x44], edx
inc dword [esp + 0x48]
mov ebp, dword [esp + 0x60]
cmp dword [esp + 0x48], ebp
jae 0x6c2865a5
mov ebx, dword [esp + 0x44]
movzx ecx, byte [ebx]
cmp ecx, 4
jg 0x6c285cd0
mov eax, dword [esp + 0x50]
mov edi, eax
sub edi, dword [esp + 0x58]
mov esi, ebx
inc esi
mov ebp, dword [esp + 0x58]
add dword [esp + 0x50], ebp
mov ebx, dword [esp + 0x54]
jmp 0x6c285efc
jbe case.default.0x6c2862ec
mov esi, dword [esp + 0x44]
mov edi, 1
mov ebp, dword [esp + 0x40]
test edx, edx
jle 0x6c286163
xor ecx, ecx
nop
mov bl, byte [esi + ecx]
mov byte [eax + ecx], bl
inc ecx
cmp ecx, edx
jne 0x6c286158
inc edi
mov byte [eax + edx], 0xff
add esi, edx
add eax, dword [esp + 0x24]
cmp edi, ebp
jne 0x6c286150
jmp 0x6c2860f8
jbe case.default.0x6c2862ec
mov esi, dword [esp + 0x44]
mov ebp, 1
nop
test edx, edx
jle 0x6c28619a
xor ecx, ecx
mov edi, eax
sub edi, dword [esp + 0x24]
mov bl, byte [edi + ecx]
add bl, byte [esi + ecx]
mov byte [eax + ecx], bl
inc ecx
cmp ecx, edx
jne 0x6c28618c
inc ebp
mov byte [eax + edx], 0xff
add esi, edx
add eax, dword [esp + 0x24]
cmp ebp, dword [esp + 0x40]
jne 0x6c286180
jmp 0x6c2860f8
jbe case.default.0x6c2862ec
mov esi, dword [esp + 0x44]
mov ebp, 1
nop
test edx, edx
jle 0x6c2861d6
xor ecx, ecx
nop
mov bl, byte [edi + ecx]
add bl, byte [esi + ecx]
mov byte [eax + ecx], bl
inc ecx
cmp ecx, edx
jne 0x6c2861c8
inc ebp
mov byte [eax + edx], 0xff
add esi, edx
add eax, dword [esp + 0x24]
add edi, dword [esp + 0x24]
cmp ebp, dword [esp + 0x40]
jne 0x6c2861c0
jmp 0x6c2860f8
jbe case.default.0x6c2862ec
mov esi, dword [esp + 0x44]
mov ebp, 1
nop
test edx, edx
jle 0x6c28621a
xor ecx, ecx
mov edi, eax
sub edi, dword [esp + 0x24]
mov bl, byte [edi + ecx]
add bl, byte [esi + ecx]
mov byte [eax + ecx], bl
inc ecx
cmp ecx, edx
jne 0x6c28620c
inc ebp
mov byte [eax + edx], 0xff
add esi, edx
add eax, dword [esp + 0x24]
cmp ebp, dword [esp + 0x40]
jne 0x6c286200
jmp 0x6c2860f8
jbe case.default.0x6c2862ec
mov esi, dword [esp + 0x44]
mov ebp, 1
nop
test edx, edx
jle 0x6c28625c
xor ecx, ecx
mov edi, eax
sub edi, dword [esp + 0x24]
mov bl, byte [edi + ecx]
shr bl, 1
add bl, byte [esi + ecx]
mov byte [eax + ecx], bl
inc ecx
cmp ecx, edx
jne 0x6c28624c
inc ebp
mov byte [eax + edx], 0xff
add esi, edx
add eax, dword [esp + 0x24]
cmp ebp, dword [esp + 0x40]
jne 0x6c286240
jmp 0x6c2860f8
cmp ecx, 3
je 0x6c285e37
cmp byte [esp + 0x5e], 0
je 0x6c285e42
jmp 0x6c285e37
inc dword [esp + 0x4c]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov byte [ebx + ecx], 0xff
add dword [esp + 0x34], ecx
mov edx, dword [esp + 0x24]
add ebx, edx
mov dword [esp + 0x28], ebx
add dword [esp + 0x30], edx
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x4c], ecx
jne 0x6c285ff4
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x68]
add dword [esp + 0x44], edx
jmp case.default.0x6c2862ec
add ebx, esi
mov dword [esp + 0x44], ebx
add eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x24]
add ebp, edi
cmp ecx, 6
ja case.default.0x6c2862ec
cmp dword [esp + 0x40], 1
jmp dword [ecx*4 + 0x6c3750e0]
jbe case.default.0x6c2862ec
mov esi, dword [esp + 0x44]
mov ebp, 1
test edx, edx
jle 0x6c28631c
xor ecx, ecx
mov edi, eax
sub edi, edx
mov bl, byte [edi + ecx]
shr bl, 1
add bl, byte [esi + ecx]
mov byte [eax + ecx], bl
inc ecx
cmp ecx, edx
jne 0x6c28630c
inc ebp
add esi, edx
add eax, edx
cmp ebp, dword [esp + 0x40]
jne 0x6c286302
jmp 0x6c2860f8
jbe case.default.0x6c2862ec
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], 1
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x28]
test edi, edi
jle 0x6c28654c
xor eax, eax
mov edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x28]
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
jmp 0x6c286396
cmp dword [esp + 0x14], edx
jg 0x6c2863ee
mov ecx, edi
add ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov byte [edx + eax], cl
inc eax
cmp eax, dword [esp + 0x28]
je 0x6c28654c
mov ebx, dword [esp + 0x34]
mov bl, byte [ebx + eax]
mov byte [esp + 0x1c], bl
mov ebp, dword [esp + 0x38]
movzx ecx, byte [ebp + eax]
mov edx, dword [esp + 0x2c]
movzx esi, byte [edx + eax]
mov ebx, dword [esp + 0x3c]
movzx edi, byte [ebx + eax]
lea edx, [esi + edi]
sub edx, ecx
mov ebx, edx
sub ebx, edi
mov ebp, ebx
neg ebp
test ebx, ebx
cmovs ebx, ebp
mov dword [esp + 0x14], ebx
mov ebx, edx
sub ebx, esi
mov ebp, ebx
neg ebp
test ebx, ebx
cmovs ebx, ebp
sub edx, ecx
mov ebp, edx
neg ebp
test edx, edx
cmovs edx, ebp
cmp dword [esp + 0x14], ebx
jle 0x6c286378
cmp ebx, edx
cmovle ecx, esi
jmp 0x6c286380
jbe case.default.0x6c2862ec
mov edi, dword [esp + 0x44]
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x6c286436
xor edx, edx
mov esi, eax
sub esi, dword [esp + 0x1c]
nop
movzx ebx, byte [ebp + edx]
movzx ecx, byte [esi + edx]
add ecx, ebx
sar ecx, 1
add cl, byte [edi + edx]
mov byte [eax + edx], cl
inc edx
cmp edx, dword [esp + 0x1c]
jne 0x6c28641c
inc dword [esp + 0x20]
add edi, dword [esp + 0x1c]
add eax, dword [esp + 0x1c]
add ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x40]
cmp dword [esp + 0x20], ebx
jne 0x6c28640b
mov edx, dword [esp + 0x1c]
imul edx, dword [esp + 0x68]
add dword [esp + 0x44], edx
jmp case.default.0x6c2862ec
jbe case.default.0x6c2862ec
mov esi, dword [esp + 0x44]
mov edi, 1
test edx, edx
jle 0x6c286487
xor ecx, ecx
nop
mov bl, byte [ebp + ecx]
add bl, byte [esi + ecx]
mov byte [eax + ecx], bl
inc ecx
cmp ecx, edx
jne 0x6c286478
inc edi
add esi, edx
add eax, edx
add ebp, edx
cmp edi, dword [esp + 0x40]
jne 0x6c286471
jmp 0x6c2860f8
jbe case.default.0x6c2862ec
mov esi, dword [esp + 0x44]
mov ebp, 1
test edx, edx
jle 0x6c2864c2
xor ecx, ecx
mov edi, eax
sub edi, edx
nop
mov bl, byte [edi + ecx]
add bl, byte [esi + ecx]
mov byte [eax + ecx], bl
inc ecx
cmp ecx, edx
jne 0x6c2864b4
inc ebp
add esi, edx
add eax, edx
cmp ebp, dword [esp + 0x40]
jne 0x6c2864a8
jmp 0x6c2860f8
jbe case.default.0x6c2862ec
mov esi, dword [esp + 0x44]
mov edi, 1
mov ebp, dword [esp + 0x40]
test edx, edx
jle 0x6c2864f7
xor ecx, ecx
nop
mov bl, byte [esi + ecx]
mov byte [eax + ecx], bl
inc ecx
cmp ecx, edx
jne 0x6c2864ec
inc edi
add esi, edx
add eax, edx
cmp edi, ebp
jne 0x6c2864e5
jmp 0x6c2860f8
jbe case.default.0x6c2862ec
mov ebx, dword [esp + 0x44]
mov edi, 1
mov esi, dword [esp + 0x24]
test esi, esi
jle 0x6c286533
xor edx, edx
mov ebp, eax
sub ebp, esi
nop
mov cl, byte [ebp + edx]
add cl, byte [ebx + edx]
mov byte [eax + edx], cl
inc edx
cmp edx, esi
jne 0x6c286524
inc edi
add ebx, esi
add eax, esi
cmp edi, dword [esp + 0x40]
jne 0x6c286518
mov ebp, dword [esp + 0x6c]
add dword [esp + 0x44], ebp
jmp case.default.0x6c2862ec
inc dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x34], ecx
add dword [esp + 0x30], ecx
add dword [esp + 0x2c], ecx
mov ebx, dword [esp + 0x40]
cmp dword [esp + 0x4c], ebx
jne 0x6c28634e
mov edx, dword [esp + 0x68]
imul edx, ecx
add dword [esp + 0x44], edx
jmp case.default.0x6c2862ec
mov edx, ebx
jmp 0x6c285f47
mov dword [0x6c4b3340], str.Corrupt_PNG
jmp 0x6c285cdc
mov byte [esp + 0x5e], 3
jmp 0x6c285abc
xor eax, eax
jmp 0x6c285cdc
cmp byte [esp + 0x5f], 0
jne 0x6c286675
cmp byte [esp + 0x5e], 0
je 0x6c286654
movzx edi, byte [esp + 0x5e]
mov dword [0x6c4b3354], edi
mov dword [0x6c4b335c], edi
cmp dword [esp + 0x64], 2
jle 0x6c2865df
mov edx, dword [esp + 0x64]
mov dword [0x6c4b335c], edx
mov edi, edx
mov ebx, dword [0x6c4b3350]
imul ebx, dword [0x6c4b334c]
mov esi, dword [0x6c4b8364]
mov eax, edi
imul eax, ebx
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov ebp, eax
test eax, eax
je 0x6c28676a
cmp edi, 3
je 0x6c286716
test ebx, ebx
je 0x6c286646
mov edx, eax
xor edi, edi
nop
movzx eax, byte [esi + edi]
shl eax, 2
mov cl, byte [esp + eax + 0x78]
mov byte [edx], cl
mov cl, byte [esp + eax + 0x79]
mov byte [edx + 1], cl
mov cl, byte [esp + eax + 0x7a]
mov byte [edx + 2], cl
mov al, byte [esp + eax + 0x7b]
mov byte [edx + 3], al
add edx, 4
inc edi
cmp edi, ebx
jne 0x6c28661c
mov dword [esp], esi
call sub.msvcrt.dll_free
mov dword [0x6c4b8364], ebp
mov eax, dword [0x6c4b8368]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [0x6c4b8368], 0
mov eax, 1
jmp 0x6c285cdc
mov eax, dword [0x6c4b335c]
mov ecx, dword [0x6c4b3350]
imul ecx, dword [0x6c4b334c]
cmp eax, 2
je 0x6c2866e7
cmp eax, 4
jne 0x6c28680d
mov eax, dword [0x6c4b8364]
test ecx, ecx
je 0x6c2865b0
mov bl, byte [esp + 0x47d]
movzx esi, byte [esp + 0x47e]
movzx edi, byte [esp + 0x47f]
xor edx, edx
mov dword [esp + 0x1c], ecx
jmp 0x6c2866cf
add eax, 4
inc edx
cmp edx, dword [esp + 0x1c]
je 0x6c2865b0
cmp byte [eax], bl
jne 0x6c2866c1
mov ecx, esi
cmp byte [eax + 1], cl
jne 0x6c2866c1
mov ecx, edi
cmp byte [eax + 2], cl
jne 0x6c2866c1
mov byte [eax + 3], 0
jmp 0x6c2866c1
mov eax, dword [0x6c4b8364]
test ecx, ecx
je 0x6c2865b0
movzx esi, byte [esp + 0x47d]
xor edx, edx
mov ebx, esi
cmp bl, byte [eax]
sete bl
dec ebx
mov byte [eax + 1], bl
add eax, 2
inc edx
cmp edx, ecx
jne 0x6c2866fe
jmp 0x6c2865b0
test ebx, ebx
je 0x6c286646
xor edx, edx
mov edi, ebx
movzx ecx, byte [esi + edx]
shl ecx, 2
mov bl, byte [esp + ecx + 0x78]
mov byte [eax], bl
mov bl, byte [esp + ecx + 0x79]
mov byte [eax + 1], bl
mov cl, byte [esp + ecx + 0x7a]
mov byte [eax + 2], cl
add eax, 3
inc edx
cmp edx, edi
jne 0x6c286722
jmp 0x6c286646
mov dword [0x6c4b3340], str.Out_of_memory
jmp 0x6c285cdc
mov dword [0x6c4b3340], str.Very_large_image__corrupt__
xor eax, eax
jmp 0x6c285cdc
mov dword [0x6c4b3340], str.Out_of_memory
xor eax, eax
jmp 0x6c285cdc
mov dword [0x6c4b3340], str.PNG_not_supported:_interlaced_mode
xor eax, eax
jmp 0x6c285cdc
movzx eax, byte [esp + 0x5e]
mov dword [0x6c4b3354], eax
mov eax, 1
jmp 0x6c285cdc
mov dword [0x6c4b3340], str.PNG_not_supported:_8_bit_only
xor eax, eax
jmp 0x6c285cdc
mov edx, eax
shr edx, 0x18
mov byte [0x6c35fe90], dl
mov edx, eax
shr edx, 0x10
mov byte [0x6c35fe91], dl
mov edx, eax
shr edx, 8
mov byte [0x6c35fe92], dl
mov byte [0x6c35fe93], al
mov dword [0x6c4b3340], 0x6c375080
xor eax, eax
jmp 0x6c285cdc
mov dword [0x6c4b3340], str.Image_too_large_to_decode
xor eax, eax
jmp 0x6c285cdc
mov dword [0x6c4b3354], 4
mov eax, 1
jmp 0x6c285cdc
mov dword [esp + 8], 0x81b
mov dword [esp + 4], str.SOIL_src_stb_image_aug.c
mov dword [esp], str.out_n__2__out_n__4
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x800
mov dword [esp + 4], str.SOIL_src_stb_image_aug.c
mov dword [esp], str.img_n1__out_n
call sub.msvcrt.dll__assert
lea esi, [esi]