Function at 0x4c4850
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], ebx
push edi
test esi, esi
je 0x4c480b
mov eax, dword [esi + 0x1d4]
cmp eax, 5
ja case.default.0x4c4607
jmp dword [eax*4 + 0x4c4838]
movzx edi, byte [esi + 0x12c]
mov eax, 8
mov ecx, dword [esi + 0x1cc]
sub eax, edi
cmp ecx, eax
cmovae ecx, eax
lea eax, [ebx + 0x20]
push ecx
add eax, edi
mov dword [ebp - 4], ecx
push eax
push esi
call fcn.004c51e0
mov al, byte [esi + 0x12c]
add esp, 0xc
mov ecx, dword [ebp - 4]
mov edx, edi
add al, cl
mov byte [ebp - 8], al
push ecx
lea ecx, [ebx + 0x20]
mov byte [esi + 0x12c], al
call fcn.004c3510
add esp, 4
test eax, eax
je 0x4c468a
cmp edi, 4
jae 0x4c481e
mov eax, dword [ebp - 4]
lea ecx, [ebx + 0x20]
add eax, 0xfffffffc
mov edx, edi
push eax
call fcn.004c3510
add esp, 4
test eax, eax
je 0x4c481e
jmp 0x4c4812
cmp byte [ebp - 8], 8
jb 0x4c480b
mov dword [esi + 0x1d4], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call 0x4c4850
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004c5400
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 0x1cc]
test edi, edi
je 0x4c46f1
mov eax, dword [esi + 0x1e0]
test eax, eax
je 0x4c46f1
mov edx, dword [esi + 0x1e8]
cmp edi, eax
cmovae edi, eax
push edi
call fcn.004c9dc0
sub dword [esi + 0x1e0], edi
add esp, 4
add dword [esi + 0x1e8], edi
cmp dword [esi + 0x1e0], 0
jne 0x4c480b
cmp dword [esi + 0x1cc], 4
mov ecx, esi
jae 0x4c4715
call fcn.004c5270
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004c5120
mov ebx, dword [esi + 0x1e4]
mov ecx, ebx
cmp byte [ebx], 0
je 0x4c472d
inc ecx
cmp byte [ecx], 0
jne 0x4c4727
mov eax, dword [esi + 0x1dc]
lea edx, [ecx + 1]
add eax, ebx
cmp ecx, eax
mov eax, dword [esi + 0x248]
push 0x10
cmovae edx, ecx
mov dword [ebp - 8], edx
test eax, eax
je 0x4c4754
push esi
call eax
add esp, 8
jmp 0x4c475c
call fcn.004dacaa
add esp, 4
mov edi, eax
test edi, edi
jne 0x4c476f
test dword [esi + 0x6c], 0x100000
je 0x4c482a
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
push ecx
push edi
mov ecx, esi
mov dword [edi], 0xffffffff
mov dword [edi + 4], ebx
mov dword [edi + 8], eax
call fcn.004c2e50
mov ecx, dword [esi + 0x24c]
add esp, 8
mov dword [ebp - 8], eax
push ebx
test ecx, ecx
je 0x4c47a3
push esi
call ecx
add esp, 8
jmp 0x4c47ab
call fcn.004da5c6
add esp, 4
mov eax, dword [esi + 0x24c]
push edi
test eax, eax
je 0x4c47be
push esi
call eax
add esp, 8
jmp 0x4c47c6
call fcn.004da5c6
add esp, 4
cmp dword [ebp - 8], 0
mov dword [esi + 0x1e4], 0
je 0x4c480b
mov edx, str.Insufficient_memory_to_store_text_chunk.
mov ecx, esi
call fcn.004c7dd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004c5e10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004c5120
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x1cc], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, str.Not_a_PNG_file
mov ecx, esi
call fcn.004c7d20
mov edx, str.PNG_file_corrupted_by_ASCII_conversion
mov ecx, esi
call fcn.004c7d20
mov edx, str.Out_of_Memory_
mov ecx, esi
call fcn.004c7d20
nop
push cs
inc esi
dec esp
add byte [ebp - 0x4effb3ba], ah
inc esi
dec esp
add ch, dh
inc edi
dec esp
add byte [ebp - 0x16ffb3ba], bh
inc edi
dec esp
add byte [ebp - 0x75], dl
in al, dx
sub esp, 0xac
mov eax, dword [0x53f084]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x1c], 0x52444849
push edi
mov ebx, edx
mov byte [ebp - 0x18], 0
mov dword [ebp - 0xc], 0x54414449
test dword [esi + 0x68], 0x100
mov byte [ebp - 8], 0
mov dword [ebp - 0x24], 0x444e4549
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x14], 0x45544c50
mov byte [ebp - 0x10], 0
mov dword [ebp - 0x64], 0x44474b62
mov byte [ebp - 0x60], 0
mov dword [ebp - 0x3c], 0x4d524863
mov byte [ebp - 0x38], 0
mov dword [ebp - 0x2c], 0x414d4167
mov byte [ebp - 0x28], 0
mov dword [ebp - 0x6c], 0x54534968
mov byte [ebp - 0x68], 0
mov dword [ebp - 0x4c], 0x50434369
mov byte [ebp - 0x48], 0
mov dword [ebp - 0x7c], 0x7346466f
mov byte [ebp - 0x78], 0
mov dword [ebp - 0x84], 0x4c414370
mov byte [ebp - 0x80], 0
mov dword [ebp - 0x74], 0x73594870
mov byte [ebp - 0x70], 0
mov dword [ebp - 0x34], 0x54494273
mov byte [ebp - 0x30], 0
mov dword [ebp - 0x8c], 0x4c414373
mov byte [ebp - 0x88], 0
mov dword [ebp - 0x44], 0x42475273
mov byte [ebp - 0x40], 0
mov dword [ebp - 0x54], 0x544c5073
mov byte [ebp - 0x50], 0
mov dword [ebp - 0x9c], 0x74584574
mov byte [ebp - 0x98], 0
mov dword [ebp - 0x94], 0x454d4974
mov byte [ebp - 0x90], 0
mov dword [ebp - 0x5c], 0x534e5274
mov byte [ebp - 0x58], 0
mov dword [ebp - 0xa4], 0x7458547a
mov byte [ebp - 0xa0], 0
jne 0x4c4a67
cmp dword [esi + 0x1cc], 8
jb 0x4c5071
push 4
lea eax, [ebp - 0xa8]
push eax
push esi
call fcn.004c51e0
mov eax, dword [ebp - 0xa8]
add esp, 0xc
movzx ecx, al
shl ecx, 8
movzx eax, ah
add ecx, eax
movzx eax, byte [ebp - 0xa6]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebp - 0xa5]
shl ecx, 8
add ecx, eax
cmp ecx, 0x7fffffff
ja 0x4c50ae
mov dword [esi + 0x1bc], ecx
lea edx, [esi + 0x11c]
push 4
mov ecx, esi
mov dword [esi + 0x110], 0
call fcn.004c9dc0
mov cl, byte [esi + 0x11c]
add esp, 4
lea eax, [ecx - 0x41]
cmp al, 0x39
ja 0x4c50ba
cmp cl, 0x5a
jbe 0x4c4a03
cmp cl, 0x61
jb 0x4c50ba
mov cl, byte [esi + 0x11d]
lea eax, [ecx - 0x41]
cmp al, 0x39
ja 0x4c50ba
cmp cl, 0x5a
jbe 0x4c4a22
cmp cl, 0x61
jb 0x4c50ba
mov cl, byte [esi + 0x11e]
lea eax, [ecx - 0x41]
cmp al, 0x39
ja 0x4c50ba
cmp cl, 0x5a
jbe 0x4c4a41
cmp cl, 0x61
jb 0x4c50ba
mov cl, byte [esi + 0x11f]
lea eax, [ecx - 0x41]
cmp al, 0x39
ja 0x4c50ba
cmp cl, 0x5a
jbe 0x4c4a60
cmp cl, 0x61
jb 0x4c50ba
or dword [esi + 0x68], 0x100
lea edi, [esi + 0x11c]
mov ecx, edi
lea edx, [ebp - 0xc]
mov eax, dword [ecx]
cmp eax, dword [edx]
je 0x4c4a94
cmp al, byte [edx]
jne 0x4c4a98
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c4a98
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c4a98
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c4a98
xor edx, edx
jmp 0x4c4a9d
sbb edx, edx
or edx, 1
mov eax, dword [esi + 0x68]
mov ecx, eax
test edx, edx
jne 0x4c4ab3
test al, 8
je 0x4c4ab3
or ecx, 0x2000
mov dword [esi + 0x68], ecx
mov eax, dword [edi]
lea edx, [ebp - 0x1c]
cmp eax, dword [edx]
jne 0x4c4ae6
cmp dword [esi + 0x1bc], 0xd
jne 0x4c50c6
cmp dword [esi + 0x1cc], 0x11
jb 0x4c5071
push 0xd
mov edx, ebx
mov ecx, esi
call fcn.004ca2d0
jmp 0x4c5093
lea edx, [ebp - 0x24]
cmp eax, dword [edx]
jne 0x4c4b52
mov edi, dword [esi + 0x1bc]
lea eax, [edi + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
mov eax, ecx
and eax, 5
cmp al, 5
jne 0x4c50d2
or ecx, 0x18
mov dword [esi + 0x68], ecx
test edi, edi
je 0x4c4b25
mov edx, str.Incorrect_IEND_chunk_length
mov ecx, esi
call fcn.004c7dd0
mov edx, edi
mov ecx, esi
call fcn.004c9e40
mov eax, dword [esi + 0x1a8]
mov dword [esi + 0x1d4], 6
test eax, eax
je 0x4c5096
push ebx
push esi
call eax
add esp, 8
jmp 0x4c5096
test edi, edi
je 0x4c4b7e
mov edx, dword [esi + 0x220]
test edx, edx
jle 0x4c4b7e
mov eax, dword [esi + 0x224]
lea ecx, [edx + edx*4]
add eax, 0xfffffffb
add ecx, eax
nop
mov eax, dword [edi]
cmp eax, dword [ecx]
je 0x4c4baf
sub ecx, 5
sub edx, 1
jne 0x4c4b70
mov eax, dword [edi]
lea ecx, [ebp - 0x14]
cmp eax, dword [ecx]
jne 0x4c4c26
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004ca4f0
jmp 0x4c5093
cmp byte [ecx + 4], 0
je 0x4c4b7e
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
mov eax, dword [edi]
lea edx, [ebp - 0xc]
cmp eax, dword [edx]
jne 0x4c4bd7
or dword [esi + 0x68], 4
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004ccaf0
mov eax, dword [edi]
lea ecx, [ebp - 0x14]
add esp, 4
cmp eax, dword [ecx]
jne 0x4c4bf6
or dword [esi + 0x68], 2
jmp 0x4c5096
lea ecx, [ebp - 0xc]
cmp eax, dword [ecx]
jne 0x4c5096
mov eax, dword [esi + 0x68]
test al, 1
je 0x4c50de
cmp byte [esi + 0x126], 3
jne 0x4c5096
test al, 2
jne 0x4c5096
jmp 0x4c50ea
lea ecx, [ebp - 0xc]
cmp eax, dword [ecx]
jne 0x4c4ce9
mov ecx, dword [esi + 0x68]
test cl, 1
je 0x4c50de
cmp byte [esi + 0x126], 3
jne 0x4c4c4f
test cl, 2
je 0x4c50ea
test cl, 4
je 0x4c4c72
test ecx, 0x2000
jne 0x4c4c69
cmp dword [esi + 0x1bc], 0
je 0x4c509d
test cl, 8
jne 0x4c50f6
mov eax, dword [esi + 0x1bc]
or ecx, 4
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x1a0]
mov dword [esi + 0x68], ecx
mov dword [esi + 0x1d4], 2
test eax, eax
je 0x4c4c9f
push ebx
push esi
call eax
add esp, 8
mov al, byte [esi + 0x129]
mov ecx, dword [esi + 0xe0]
movzx edx, al
cmp al, 8
jb 0x4c4cba
shr edx, 3
imul edx, ecx
jmp 0x4c4cc3
imul edx, ecx
add edx, 7
shr edx, 3
lea eax, [edx + 1]
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0xec]
mov dword [esi + 0x80], eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d170a
mov esp, ebp
pop ebp
ret
mov ecx, edi
lea edx, [ebp - 0x2c]
mov eax, dword [ecx]
cmp eax, dword [edx]
je 0x4c4d10
cmp al, byte [edx]
jne 0x4c4d14
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c4d14
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c4d14
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c4d14
xor eax, eax
jmp 0x4c4d19
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4c4d41
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004ca780
jmp 0x4c5093
mov eax, dword [edi]
lea ecx, [ebp - 0x34]
cmp eax, dword [ecx]
jne 0x4c4d6e
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004ca980
jmp 0x4c5093
lea ecx, [ebp - 0x3c]
cmp eax, dword [ecx]
jne 0x4c4d99
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cab00
jmp 0x4c5093
lea ecx, [ebp - 0x44]
cmp eax, dword [ecx]
jne 0x4c4dc4
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cafd0
jmp 0x4c5093
lea ecx, [ebp - 0x4c]
cmp eax, dword [ecx]
jne 0x4c4def
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cb200
jmp 0x4c5093
lea ecx, [ebp - 0x54]
cmp eax, dword [ecx]
jne 0x4c4e1a
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cb470
jmp 0x4c5093
lea ecx, [ebp - 0x5c]
cmp eax, dword [ecx]
jne 0x4c4e45
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cb850
jmp 0x4c5093
lea ecx, [ebp - 0x64]
cmp eax, dword [ecx]
jne 0x4c4e70
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cbc50
jmp 0x4c5093
lea ecx, [ebp - 0x6c]
cmp eax, dword [ecx]
jne 0x4c4e9b
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cbe80
jmp 0x4c5093
lea ecx, [ebp - 0x74]
cmp eax, dword [ecx]
jne 0x4c4ec6
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cc100
jmp 0x4c5093
lea ecx, [ebp - 0x7c]
cmp eax, dword [ecx]
jne 0x4c4ef1
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cc250
jmp 0x4c5093
lea ecx, [ebp - 0x84]
cmp eax, dword [ecx]
jne 0x4c4f1f
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cc3a0
jmp 0x4c5093
lea ecx, [ebp - 0x8c]
cmp eax, dword [ecx]
jne 0x4c4f4d
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cc770
jmp 0x4c5093
lea ecx, [ebp - 0x94]
cmp eax, dword [ecx]
jne 0x4c4f7b
mov ecx, dword [esi + 0x1bc]
lea eax, [ecx + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
push ecx
mov edx, ebx
mov ecx, esi
call fcn.004cc980
jmp 0x4c5093
lea ecx, [ebp - 0x9c]
cmp eax, dword [ecx]
jne 0x4c4fe2
mov edi, dword [esi + 0x1bc]
lea eax, [edi + 4]
cmp eax, dword [esi + 0x1cc]
ja 0x4c5071
mov eax, dword [esi + 0x68]
mov ecx, esi
and al, 0x11
cmp al, 1
jne 0x4c5102
lea edx, [edi + 1]
call fcn.004c7ca0
mov dword [esi + 0x1e4], eax
mov byte [eax + edi], 0
mov eax, dword [esi + 0x1e4]
mov dword [esi + 0x1e8], eax
mov dword [esi + 0x1dc], edi
mov dword [esi + 0x1e0], edi
mov dword [esi + 0x1d4], 4
jmp 0x4c5096
lea ecx, [ebp - 0xa4]
cmp eax, dword [ecx]
je 0x4c5008
cmp al, byte [ecx]
jne 0x4c500c
mov al, byte [edi + 1]
cmp al, byte [ecx + 1]
jne 0x4c500c
mov al, byte [edi + 2]
cmp al, byte [ecx + 2]
jne 0x4c500c
mov al, byte [edi + 3]
cmp al, byte [ecx + 3]
jne 0x4c500c
xor eax, eax
jmp 0x4c5011
sbb eax, eax
or eax, 1
mov edi, dword [esi + 0x1bc]
mov ecx, dword [esi + 0x1cc]
lea edx, [edi + 4]
test eax, eax
jne 0x4c506d
cmp edx, ecx
ja 0x4c5071
mov eax, dword [esi + 0x68]
mov ecx, esi
and al, 0x11
cmp al, 1
jne 0x4c510c
lea edx, [edi + 1]
call fcn.004c7ca0
mov dword [esi + 0x1e4], eax
mov byte [eax + edi], 0
mov eax, dword [esi + 0x1e4]
mov dword [esi + 0x1e8], eax
mov dword [esi + 0x1dc], edi
mov dword [esi + 0x1e0], edi
mov dword [esi + 0x1d4], 5
jmp 0x4c5096
cmp edx, ecx
jbe 0x4c5089
mov ecx, esi
call fcn.004c5270
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d170a
mov esp, ebp
pop ebp
ret
push edi
mov edx, ebx
mov ecx, esi
call fcn.004c61f0
add esp, 4
and dword [esi + 0x68], 0xfffffeff
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004d170a
mov esp, ebp
pop ebp
ret
mov edx, str.PNG_unsigned_integer_out_of_range.
mov ecx, esi
call fcn.004c7d20
mov edx, str.invalid_chunk_type
mov ecx, esi
call fcn.004c8050
mov edx, str.Invalid_IHDR_length
mov ecx, esi
call fcn.004c7d20
mov edx, str.No_image_in_file
mov ecx, esi
call fcn.004c7d20
mov edx, str.Missing_IHDR_before_IDAT
mov ecx, esi
call fcn.004c7d20
mov edx, str.Missing_PLTE_before_IDAT
mov ecx, esi
call fcn.004c7d20
mov edx, str.Too_many_IDATs_found
mov ecx, esi
call fcn.004c7d20
mov edx, str.Out_of_place_tEXt
call fcn.004c7d20
mov edx, str.Out_of_place_zTXt
call fcn.004c7d20
int3