Function at 0x4254f0
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
push eax
mov eax, 0x14e8
call fcn.00453de8
sub esp, eax
mov eax, dword [esp + eax]
mov dword [esp + 0x30], eax
mov word [esp + 0x9b], 0
mov byte [esp + 0x9d], 0
mov esi, dword [eax]
mov dword [esp + 0x24], esi
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
xor ebx, ebx
jmp 0x425557
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x425590
xor eax, eax
cmp byte [ebx + 0x468378], al
jne 0x425578
inc ebx
cmp ebx, 8
je 0x4255d0
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x425540
lea edx, [eax + 1]
mov dword [esi + 0xa8], edx
mov al, byte [eax]
cmp byte [ebx + 0x468378], al
je 0x425551
mov dword [0x46f094], str.bad_png_sig
xor eax, eax
add esp, 0x14ec
pop ebx
pop esi
pop edi
pop ebp
ret
lea edi, [esi + 0x28]
mov eax, dword [esi + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [esi + 0x1c]
mov dword [esp], eax
call dword [esi + 0x10]
lea edx, [esi + 0x29]
test eax, eax
je 0x425a40
add edi, eax
mov al, byte [esi + 0x28]
mov dword [esi + 0xac], edi
mov dword [esi + 0xa8], edx
jmp 0x425549
mov dword [esp + 0x38], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x2c], 0
xor edi, edi
mov byte [esp + 0x63], 0
mov byte [esp + 0x62], 0
lea esi, [esi]
mov esi, dword [esp + 0x24]
mov eax, esi
call fcn.004108f0
mov ebx, eax
mov eax, esi
call fcn.004108f0
cmp eax, 0x49484452
je 0x425bb0
ja 0x425960
cmp eax, 0x49444154
je 0x425b20
cmp eax, 0x49454e44
jne 0x425a10
mov ebp, dword [esp + 0x28]
test ebp, ebp
jne 0x425d30
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x425e80
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov esi, dword [esp + 0x30]
imul eax, dword [esi + 0x10]
add eax, 7
shr eax, 3
mov esi, dword [ecx + 8]
imul esi, edx
imul eax, esi
lea esi, [eax + edx]
mov ebp, dword [esp + 0x38]
xor ebp, 1
mov eax, esi
test esi, esi
je 0x425d70
mov dword [esp + 4], eax
mov dword [esp], 1
call sub.msvcrt.dll_calloc
test eax, eax
je 0x4262a5
mov dword [esp + 0x4f8], ebx
add ebx, edi
mov dword [esp + 0x4fc], ebx
mov dword [esp + 0x50c], eax
mov dword [esp + 0x508], eax
add eax, esi
mov dword [esp + 0x510], eax
mov dword [esp + 0x514], 1
lea eax, [esp + 0x4f8]
mov dword [esp + 0x4c], eax
mov edx, ebp
call fcn.004238f0
test eax, eax
mov eax, dword [esp + 0x50c]
je 0x425ff5
mov dword [esp + 0x7c], eax
mov edi, dword [esp + 0x508]
sub edi, eax
mov dword [esp + 0x84], edi
mov edx, dword [esp + 0x30]
mov dword [edx + 8], eax
test eax, eax
je 0x425582
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 4]
test eax, eax
je 0x425742
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [edi + 8]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x30]
mov dword [eax + 4], 0
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 8]
mov dword [esp + 0x74], edx
lea eax, [edx + 1]
cmp edx, 3
je 0x4261f6
cmp byte [esp + 0x63], 0
je 0x42576f
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x74]
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x88], eax
cmp eax, 0x10
je 0x426251
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x42620e
mov dword [esp], 0
mov ecx, ebx
call fcn.00411940
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], 0
lea eax, [esp + 0xa4]
mov dword [esp + 0x50], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x54], eax
lea eax, [esp + 0xdc]
mov dword [esp + 0x58], eax
mov ebp, ebx
mov ebx, dword [esp + 0x30]
lea esi, [esi]
mov ecx, 7
mov edi, dword [esp + 0x50]
mov esi, 0x4652e4
rep movsd dword es:[edi], dword [esi]
mov ecx, 7
mov edi, dword [esp + 0x54]
mov esi, 0x465300
rep movsd dword es:[edi], dword [esi]
mov ecx, 7
mov edi, dword [esp + 0x58]
mov esi, 0x46531c
rep movsd dword es:[edi], dword [esi]
mov ecx, 7
mov edi, dword [esp + 0x4c]
mov esi, 0x465338
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebx]
mov dword [esp + 0x28], esi
lea eax, [esp + 0xa4]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x2c], edx
lea edi, [esp + 0xdc]
mov dword [esp + 0x58], edi
mov edi, dword [edi + ecx*4]
mov eax, dword [esi]
lea eax, [edi + eax - 1]
sub eax, edx
xor edx, edx
div edi
mov dword [esp + 0x34], eax
mov eax, dword [esi + 4]
lea esi, [esp + 0xc0]
mov dword [esp + 0x54], esi
mov edx, dword [esi + ecx*4]
lea ecx, [esp + 0x4f8]
mov dword [esp + 0x4c], ecx
mov esi, dword [esp + 0x38]
mov ecx, dword [ecx + esi*4]
mov dword [esp + 0x5c], ecx
mov esi, dword [esp + 0x34]
test esi, esi
je 0x4258b3
mov dword [esp + 0x3c], edx
lea eax, [eax + ecx - 1]
sub eax, edx
xor edx, edx
div ecx
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x426038
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 7
jne 0x4257f0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
mov dword [eax + 0xc], edx
cmp byte [esp + 0x63], 0
je 0x425f10
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov edi, dword [esp + 0x30]
mov edx, dword [edi]
mov eax, dword [edi + 0xc]
mov ebx, dword [edx + 4]
imul ebx, dword [edx]
mov esi, ebx
cmp dword [edi + 0x10], 0x10
je 0x426303
cmp ecx, 2
je 0x426259
test ebx, ebx
je 0x426281
mov cl, byte [esp + 0x9b]
mov bl, byte [esp + 0x9c]
movzx edi, byte [esp + 0x9d]
xor edx, edx
mov ebp, ebx
jmp 0x425939
inc edx
cmp edx, esi
je 0x426281
cmp byte [eax + edx*4], cl
jne 0x425930
mov ebx, ebp
cmp byte [eax + edx*4 + 1], bl
jne 0x425930
mov ebx, edi
cmp byte [eax + edx*4 + 2], bl
jne 0x425930
mov byte [eax + edx*4 + 3], 0
jmp 0x425930
cmp eax, 0x504c5445
je 0x425a90
cmp eax, 0x74524e53
jne 0x425a60
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x425d30
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 4]
test edx, edx
jne 0x42638a
cmp byte [esp + 0x62], 0
jne 0x425e30
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
test al, 1
je 0x4263f3
lea edx, [eax + eax]
cmp edx, ebx
jne 0x4263a8
mov edx, dword [esp + 0x30]
cmp dword [edx + 0x10], 0x10
je 0x425d40
test eax, eax
jle 0x4259f3
xor ebx, ebx
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov eax, esi
call fcn.004101f0
mov edx, eax
mov ecx, dword [ebp + 0x10]
mov al, byte [ecx + 0x468384]
mul dl
mov byte [esp + ebx + 0x9b], al
inc ebx
cmp ebx, dword [esi + 8]
jl 0x4259d2
mov byte [esp + 0x63], 1
mov eax, dword [esp + 0x24]
call fcn.004108f0
jmp 0x425610
cmp eax, 0x43674249
jne 0x425a60
mov edx, ebx
mov eax, dword [esp + 0x24]
call fcn.00410170
mov dword [esp + 0x38], 1
mov eax, dword [esp + 0x24]
call fcn.004108f0
jmp 0x425610
mov dword [esi + 0x20], 0
mov byte [esi + 0x28], 0
mov edi, edx
jmp 0x4255b7
mov edx, dword [esp + 0x28]
test edx, edx
jne 0x425d30
test eax, 0x20000000
je 0x426365
mov edx, ebx
mov eax, dword [esp + 0x24]
call fcn.00410170
mov eax, dword [esp + 0x24]
call fcn.004108f0
jmp 0x425610
mov esi, dword [esp + 0x28]
test esi, esi
jne 0x425d30
cmp ebx, 0x300
ja 0x4262e5
mov eax, 0xaaaaaaab
mul ebx
mov ebp, edx
shr ebp, 1
mov dword [esp + 0x34], ebp
and edx, 0xfffffffe
add edx, ebp
cmp edx, ebx
jne 0x4262e5
cmp edx, 2
jbe 0x426298
xor ebx, ebx
lea esi, [esp + 0xf8]
lea esi, [esi]
lea esi, [esi]
mov eax, dword [esp + 0x24]
call fcn.0040fbd0
mov byte [esi + ebx*4], al
mov eax, dword [esp + 0x24]
call fcn.0040fbd0
mov byte [esi + ebx*4 + 1], al
mov eax, dword [esp + 0x24]
call fcn.0040fbd0
mov byte [esi + ebx*4 + 2], al
mov byte [esi + ebx*4 + 3], 0xff
inc ebx
cmp ebx, ebp
jb 0x425ae0
mov eax, dword [esp + 0x24]
call fcn.004108f0
jmp 0x425610
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x425d30
cmp byte [esp + 0x62], 0
je 0x425b3f
mov eax, dword [esp + 0x34]
test eax, eax
je 0x426436
lea ebp, [edi + ebx]
cmp ebp, edi
jl 0x425582
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x2c]
cmp edx, ebp
jb 0x425d80
lea edx, [eax + edi]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xac]
mov esi, dword [eax + 0xa8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x425b87
mov eax, ecx
sub eax, esi
mov dword [esp + 0x40], eax
cmp ebx, eax
jg 0x425ebc
lea eax, [esi + ebx]
cmp ecx, eax
jae 0x425df0
mov dword [0x46f094], str.outofdata
jmp 0x425582
mov ebp, dword [esp + 0x28]
test ebp, ebp
je 0x42637b
cmp ebx, 0xd
jne 0x426399
mov ebx, dword [esp + 0x24]
mov eax, ebx
call fcn.004108f0
mov dword [ebx], eax
cmp eax, 0x1000000
ja 0x425cf0
mov ebx, dword [esp + 0x24]
mov eax, ebx
call fcn.004108f0
mov dword [ebx + 4], eax
cmp eax, 0x1000000
ja 0x425cf0
mov eax, ebx
call fcn.0040fbd0
mov cl, al
xor eax, eax
mov al, cl
mov edx, dword [esp + 0x30]
mov dword [edx + 0x10], eax
dec eax
cmp eax, 1
jbe 0x425c30
cmp cl, 0x10
ja 0x425c20
mov eax, 0x10110
shr eax, cl
test al, 1
jne 0x425c30
mov dword [0x46f094], str.1_2_4_8_16_bit_only
jmp 0x425582
mov eax, dword [esp + 0x24]
call fcn.0040fbd0
mov bl, al
xor eax, eax
mov al, bl
mov dword [esp + 0x48], eax
cmp eax, 6
jg 0x4262f4
cmp dword [esp + 0x48], 3
je 0x425dd0
test bl, 1
jne 0x4262f4
mov eax, dword [esp + 0x24]
call fcn.0040fbd0
test al, al
jne 0x4263b7
mov eax, dword [esp + 0x24]
call fcn.0040fbd0
test al, al
jne 0x4263c6
mov eax, dword [esp + 0x24]
call fcn.0040fbd0
mov dl, al
and edx, 0xff
mov dword [esp + 0x3c], edx
dec edx
jg 0x4263d5
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
je 0x426356
mov esi, dword [eax + 4]
test esi, esi
je 0x426356
cmp byte [esp + 0x62], 0
jne 0x425d00
and ebx, 2
je 0x425ccb
mov dword [esp + 0x28], 3
mov ebx, dword [esp + 0x48]
sar ebx, 2
mov eax, dword [esp + 0x28]
add ebx, eax
mov eax, dword [esp + 0x24]
mov dword [eax + 8], ebx
mov eax, 0x40000000
xor edx, edx
div ecx
xor edx, edx
div ebx
cmp eax, esi
jae 0x425d18
mov dword [0x46f094], str.too_large
jmp 0x425582
mov eax, dword [esp + 0x24]
mov dword [eax + 8], 1
mov eax, 0x10000000
xor edx, edx
div ecx
cmp eax, esi
jb 0x425cf0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x24]
call fcn.004108f0
jmp 0x425610
mov dword [0x46f094], str.first_not_IHDR
jmp 0x425582
test eax, eax
jle 0x4259f3
xor ebx, ebx
mov esi, dword [esp + 0x24]
mov eax, esi
call fcn.004101f0
mov word [esp + ebx*2 + 0x9e], ax
inc ebx
cmp ebx, dword [esi + 8]
jl 0x425d4e
jmp 0x4259f3
mov eax, 1
jmp 0x42569a
test edx, edx
jne 0x425e90
mov dword [esp + 0x2c], ebx
cmp ebx, 0x1000
jb 0x425fe8
mov edx, dword [esp + 0x2c]
cmp edx, ebp
jae 0x425daa
add edx, edx
cmp edx, ebp
jb 0x425da0
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x42647f
mov edx, dword [esp + 0x30]
mov dword [edx + 4], eax
jmp 0x425b5d
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x10], 0x10
je 0x4262f4
mov byte [esp + 0x62], 3
jmp 0x425c60
cmp ebx, 4
jae 0x425e99
test ebx, ebx
je 0x425e10
mov al, byte [esi]
mov byte [edx], al
test bl, 2
je 0x425e10
mov ax, word [esi + ebx - 2]
mov word [edx + ebx - 2], ax
mov eax, dword [esp + 0x24]
add dword [eax + 0xa8], ebx
mov edi, ebp
mov eax, dword [esp + 0x24]
call fcn.004108f0
jmp 0x425610
mov eax, dword [esp + 0x34]
test eax, eax
je 0x42645e
cmp dword [esp + 0x34], ebx
jb 0x4263a8
test ebx, ebx
je 0x425e72
xor ebp, ebp
lea esi, [esp + 0xf8]
lea esi, [esi]
lea esi, [esi]
mov eax, dword [esp + 0x24]
call fcn.0040fbd0
mov byte [esi + ebp*4 + 3], al
inc ebp
cmp ebp, ebx
jne 0x425e60
mov byte [esp + 0x62], 4
jmp 0x4259f8
mov dword [0x46f094], str.no_IDAT
jmp 0x425582
mov edx, dword [esp + 0x2c]
jmp 0x425da0
mov eax, dword [esi]
mov dword [edx], eax
mov eax, dword [esi + ebx - 4]
mov dword [edx + ebx - 4], eax
lea edi, [edx + 4]
and edi, 0xfffffffc
sub edx, edi
sub esi, edx
lea ecx, [ebx + edx]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x425e10
mov edi, eax
cmp eax, 4
jae 0x426011
test eax, eax
je 0x425ed8
mov al, byte [esi]
mov byte [edx], al
and edi, 2
jne 0x42646d
mov eax, dword [esp + 0x40]
sub ebx, eax
mov dword [esp + 8], ebx
add eax, edx
mov dword [esp + 4], eax
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call dword [edi + 0x10]
mov edx, dword [edi + 0xac]
mov dword [edi + 0xa8], edx
cmp ebx, eax
jne 0x425b92
mov edi, ebp
jmp 0x425e1c
cmp byte [esp + 0x62], 0
je 0x425fc0
xor eax, eax
mov al, byte [esp + 0x62]
mov edx, dword [esp + 0x24]
mov dword [edx + 8], eax
mov dword [edx + 0xc], 4
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
mov ebx, dword [eax]
imul ebx, dword [eax + 4]
mov edi, dword [edx + 0xc]
xor ecx, ecx
mov edx, 4
mov eax, ebx
call fcn.004118b0
mov esi, eax
test eax, eax
je 0x4263e4
test ebx, ebx
je 0x425fa6
mov ecx, edi
add ebx, edi
mov edx, eax
mov edi, ebx
lea esi, [esi]
lea esi, [esi]
xor eax, eax
mov al, byte [ecx]
shl eax, 2
mov bl, byte [esp + eax + 0xf8]
mov byte [edx], bl
mov bl, byte [esp + eax + 0xf9]
mov byte [edx + 1], bl
mov bl, byte [esp + eax + 0xfa]
mov byte [edx + 2], bl
mov al, byte [esp + eax + 0xfb]
mov byte [edx + 3], al
add edx, 4
inc ecx
cmp edi, ecx
jne 0x425f70
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x425fb9
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x30]
mov dword [eax + 0xc], esi
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 8]
test eax, eax
je 0x425fd3
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x30]
mov dword [eax + 8], 0
mov eax, 1
jmp 0x425584
mov dword [esp + 0x2c], 0x1000
jmp 0x425d98
test eax, eax
je 0x426001
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x30]
mov dword [eax + 8], 0
jmp 0x425582
mov edi, dword [esi]
mov dword [edx], edi
mov ecx, dword [ecx - 4]
mov eax, dword [esp + 0x40]
mov dword [edx + eax - 4], ecx
lea edi, [edx + 4]
and edi, 0xfffffffc
mov ecx, edx
sub ecx, edi
sub esi, ecx
add ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x425ed8
mov edx, dword [esp + 0x34]
mov eax, edx
mov ecx, dword [esp + 0x28]
imul eax, dword [ecx + 8]
mov ecx, dword [esp + 0x88]
imul eax, ecx
add eax, 7
sar eax, 3
inc eax
mov esi, dword [esp + 0x6c]
imul eax, esi
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x7c]
mov eax, ebx
call fcn.004119f0
test eax, eax
je 0x426445
test esi, esi
jle 0x42642e
mov eax, dword [esp + 0x34]
imul eax, ebp
mov dword [esp + 0x78], eax
imul edi, ebp
mov dword [esp + 0x44], edi
mov esi, dword [esp + 0x2c]
imul esi, ebp
mov dword [esp + 0x80], esi
xor ecx, ecx
mov dword [esp + 0x68], 0
mov edi, dword [ebx + 0xc]
mov eax, ebp
and eax, 2
mov dword [esp + 0x64], eax
lea esi, [esi]
nop
mov esi, dword [esp + 0x34]
test esi, esi
jle 0x426198
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x28], 0
mov dword [esp + 0x70], ecx
mov dword [esp + 0x2c], ebx
jmp 0x426141
test ebp, ebp
je 0x42612b
mov bl, byte [esi]
mov byte [ecx], bl
mov edi, dword [esp + 0x64]
test edi, edi
jne 0x4261e0
mov edi, dword [esp + 0x2c]
mov edi, dword [edi + 0xc]
inc dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
add edx, ebp
mov esi, dword [esp + 0x44]
add eax, esi
cmp dword [esp + 0x34], ecx
je 0x426190
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
mov ebx, dword [ecx]
imul ebx, ebp
mov ecx, ebx
mov esi, dword [esp + 0x3c]
imul ecx, esi
add ecx, eax
mov ebx, dword [esp + 0x40]
add ecx, ebx
lea esi, [edi + edx]
cmp ebp, 4
jb 0x426110
mov edi, dword [esi]
mov dword [ecx], edi
mov edi, dword [esi + ebp - 4]
mov dword [ecx + ebp - 4], edi
lea edi, [ecx + 4]
and edi, 0xfffffffc
sub ecx, edi
sub esi, ecx
add ecx, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x426124
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x2c]
inc ecx
mov edx, dword [esp + 0x78]
add dword [esp + 0x68], edx
mov edx, dword [esp + 0x5c]
add dword [esp + 0x3c], edx
cmp dword [esp + 0x6c], ecx
jne 0x4260e0
test edi, edi
je 0x4261bf
mov dword [esp], edi
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x8c]
add dword [esp + 0x7c], edx
sub dword [esp + 0x84], edx
jmp 0x4258b3
mov si, word [esi + ebp - 2]
mov word [ecx + ebp - 2], si
mov edi, dword [esp + 0x2c]
mov edi, dword [edi + 0xc]
jmp 0x42612b
cmp byte [esp + 0x62], 0
jne 0x425764
mov dword [esp + 0x74], 4
jmp 0x42576f
mov edi, dword [esp + 0x48]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0xc], edi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x30]
call fcn.004119f0
test eax, eax
je 0x425582
jmp 0x4258cf
lea ebx, [edx + edx]
jmp 0x425795
test ebx, ebx
je 0x426281
mov bl, byte [esp + 0x9b]
xor edx, edx
lea esi, [esi]
lea esi, [esi]
cmp byte [eax + edx*2], bl
setne cl
neg ecx
mov byte [eax + edx*2 + 1], cl
inc edx
cmp edx, esi
jne 0x426270
cmp byte [esp + 0x62], 0
jne 0x425f1b
mov eax, dword [esp + 0x24]
inc dword [eax + 8]
jmp 0x425fc0
mov dword [esp + 0x34], 0
jmp 0x4259f8
mov dword [esp + 0x4f8], 1
mov dword [esp + 0x4fc], 0x46a040
mov dword [esp + 0x500], 0x46a057
lea eax, [esp + 0x4f8]
mov dword [esp], eax
call fcn.00411650
mov eax, dword [esp + 0x30]
mov dword [eax + 8], 0
jmp 0x425582
mov dword [0x46f094], str.invalid_PLTE
jmp 0x425582
mov dword [0x46f094], str.bad_ctype
jmp 0x425582
cmp ecx, 2
je 0x426402
test ebx, ebx
je 0x426281
mov cx, word [esp + 0x9e]
mov ebx, dword [esp + 0xa0]
mov di, word [esp + 0xa2]
xor edx, edx
jmp 0x426339
inc edx
cmp edx, esi
je 0x426281
cmp word [eax + edx*8], cx
jne 0x426330
cmp word [eax + edx*8 + 2], bx
jne 0x426330
cmp word [eax + edx*8 + 4], di
jne 0x426330
mov word [eax + edx*8 + 6], 0
jmp 0x426330
mov dword [0x46f094], str.0_pixel_image
jmp 0x425582
bswap eax
mov dword [str.XXXX_PNG_chunk_not_known], eax
mov dword [0x46f094], 0x465354
jmp 0x425582
mov dword [0x46f094], str.multiple_IHDR
jmp 0x425582
mov dword [0x46f094], str.tRNS_after_IDAT
jmp 0x425582
mov dword [0x46f094], str.bad_IHDR_len
jmp 0x425582
mov dword [0x46f094], str.bad_tRNS_len
jmp 0x425582
mov dword [0x46f094], str.bad_comp_method
jmp 0x425582
mov dword [0x46f094], str.bad_filter_method
jmp 0x425582
mov dword [0x46f094], str.bad_interlace_method
jmp 0x425582
mov dword [0x46f094], str.outofmem
jmp 0x425582
mov dword [0x46f094], str.tRNS_with_alpha
jmp 0x425582
test ebx, ebx
je 0x426281
mov bx, word [esp + 0x9e]
xor edx, edx
xor ecx, ecx
cmp word [eax + edx*4], bx
setne cl
neg ecx
mov word [eax + edx*4 + 2], cx
inc edx
cmp edx, esi
jne 0x426414
jmp 0x426281
mov edi, dword [ebx + 0xc]
jmp 0x4261b3
mov dword [0x46f094], str.no_PLTE
jmp 0x425582
mov eax, dword [esp + 0x40]
test eax, eax
je 0x425582
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x425582
mov dword [0x46f094], str.tRNS_before_PLTE
jmp 0x425582
mov cx, word [ecx - 2]
mov eax, dword [esp + 0x40]
mov word [edx + eax - 2], cx
jmp 0x425ed8
mov dword [esp + 0x4f8], 1
mov dword [esp + 0x4fc], 0x46a2de
mov dword [esp + 0x500], 0x46a2f7
lea eax, [esp + 0x4f8]
call fcn.00411500
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.reallocate_memory_failed
mov dword [esp + 4], str.at_ika_realloc_memory__
xor eax, eax
mov dword [esp], eax
call dword [sym.imp.USER32.dll_MessageBoxA]
sub esp, 0x10
mov eax, 1
call fcn.00411470
lea esi, [esi]