Function at 0x426ab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, edx
sub esp, 0x6c
mov dword [esp], 0x4481cc
mov dword [esp + 0x2c], ecx
call fcn.00438340
movzx ebp, byte [eax]
mov esi, eax
mov eax, ebp
test al, al
jne 0x4274d0
mov edx, 4
mov ecx, 0x30
call fcn.0040a600
mov dword [esp], 4
xor ecx, ecx
mov edx, 4
mov ebp, eax
mov dword [esp + 0x28], eax
call fcn.0040a710
lea ecx, [ebp + 4]
sub esp, 4
mov edi, eax
mov dword [esp + 0x44], ecx
cmp eax, dword [ebp + 8]
je 0x426b37
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0041f0d0
movzx ebp, byte [esi]
sub esp, 8
mov eax, ebp
test al, al
jne 0x426dc8
mov eax, dword [esp + 0x28]
mov dword [eax + 4], 0
mov dword [eax + 8], edi
movzx ebp, byte [esi]
mov eax, ebp
test al, al
jne 0x426dc8
mov dword [esp], 4
xor ecx, ecx
mov edx, 4
call fcn.0040a710
sub esp, 4
mov edi, eax
mov eax, dword [esp + 0x28]
lea ecx, [eax + 0x1c]
mov dword [esp + 0x48], ecx
cmp edi, dword [eax + 0x20]
je 0x426b9c
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x1c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0041f1b0
movzx ebp, byte [esi]
sub esp, 8
mov eax, ebp
test al, al
jne 0x426dc8
mov eax, dword [esp + 0x28]
mov dword [eax + 0x1c], 0
mov dword [eax + 0x20], edi
movzx ebp, byte [esi]
mov eax, ebp
test al, al
jne 0x426dc8
test ebx, ebx
je 0x426d10
mov eax, dword [ebx - 8]
lea edx, [eax + 0x10]
xor eax, edx
test edx, eax
js 0x426d90
mov dword [ebx - 8], edx
mov eax, dword [esp + 0x28]
mov edi, dword [eax]
mov dword [eax], ebx
test edi, edi
je 0x426c20
mov eax, dword [edi - 8]
lea edx, [edi - 8]
test eax, 0xfffffff0
je 0x426de8
lea ecx, [eax - 0x10]
xor eax, ecx
not eax
or eax, ecx
jns 0x426e28
mov eax, dword [edi]
mov dword [edi - 8], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp], 0
call fcn.00409770
lea esi, [esi]
nop
mov ecx, dword [esp + 0x2c]
mov edx, 8
call fcn.00412330
movzx ebp, byte [esi]
mov dword [esp + 0x34], edx
mov ebx, ebp
test bl, bl
jne 0x427500
cmp eax, 8
jne 0x426c51
cmp dword [edx + 4], 0x474e5089
je 0x426e38
mov ecx, 0x20
mov edx, 4
call fcn.0040a600
mov dword [eax], 0x448548
mov ecx, eax
mov dword [eax + 8], str.PNGError
mov dword [eax + 0xc], 0x12
mov dword [eax + 0x10], 0x44b048
mov dword [eax + 4], 0
mov dword [esp + 8], 0x3a5
mov dword [esp], str.parsePNG
mov edx, str.PNGError
xor edi, edi
xor ebx, ebx
mov dword [esp + 4], str.nimPNG.nim
call fcn.0040ada0
movzx ebp, byte [esi]
sub esp, 0xc
mov dword [esp + 0x2c], 0
mov byte [esi], 0
mov ecx, edi
call fcn.0041f6c0
cmp byte [esi], 0
jne 0x426cfd
mov ecx, ebx
call fcn.0041f6c0
cmp byte [esi], 0
jne 0x426cfd
mov eax, dword [esp + 0x34]
test eax, eax
je 0x426ceb
mov eax, dword [eax]
mov dword [esp + 0x30], eax
test eax, 0x40000000
je 0x426e10
mov ecx, dword [esp + 0x28]
call fcn.0041f500
cmp byte [esi], 0
jne 0x426cfd
mov eax, ebp
mov byte [esi], al
mov eax, dword [esp + 0x2c]
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, 0xc
mov edx, 4
call fcn.0040a600
mov dword [eax], 0x448510
mov dword [eax + 4], 1
mov byte [eax + 8], 0
movzx ebp, byte [esi]
mov ecx, ebp
test cl, cl
jne 0x42780a
mov edi, dword [esp + 0x28]
mov ebx, dword [edi]
mov dword [edi], eax
test ebx, ebx
je 0x426c20
mov eax, dword [ebx - 8]
lea edx, [ebx - 8]
test eax, 0xfffffff0
je 0x426da0
lea ecx, [eax - 0x10]
xor eax, ecx
not eax
or eax, ecx
jns 0x426e28
mov eax, dword [ebx]
mov dword [ebx - 8], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp], 0
call fcn.00409770
jmp 0x426c20
call fcn.004083d0
jmp 0x426bd2
mov eax, dword [ebx]
mov dword [esp + 4], edx
mov dword [esp], 1
mov dword [esp + 8], eax
call fcn.00409770
mov ecx, ebx
call fcn.00408930
jmp 0x426c20
mov dword [esp + 0x34], 0
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x2c], 0
jmp 0x426cb7
mov eax, dword [edi]
mov dword [esp + 4], edx
mov dword [esp], 1
mov dword [esp + 8], eax
call fcn.00409770
mov ecx, edi
call fcn.00408930
jmp 0x426c20
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00407bd0
jmp 0x426ceb
call fcn.004083d0
jmp 0x426c20
cmp dword [edx + 8], 0xa1a0a0d
jne 0x426c51
mov dword [esp + 0x5c], 0
mov ebp, dword [esp + 0x2c]
lea esi, [esi]
mov ecx, ebp
call fcn.00412400
movzx edx, byte [esi]
test dl, dl
jne 0x4274b0
test al, al
jne 0x427892
mov ecx, ebp
call fcn.00412500
cmp byte [esi], 0
jne 0x427790
mov ecx, ebp
bswap eax
mov ebx, eax
call fcn.00412500
cmp byte [esi], 0
jne 0x427790
bswap eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0x44b040
test ebx, ebx
jg 0x427530
mov ecx, ebp
call fcn.00412500
cmp byte [esi], 0
jne 0x42754a
mov ecx, dword [esp + 0x2c]
bswap eax
mov dword [esp + 0x40], eax
call fcn.0041f850
mov dword [esp + 0x3c], edx
movzx edx, byte [esi]
test dl, dl
jne 0x427520
test eax, eax
jle 0x4277d0
mov edi, dword [esp + 0x3c]
lea ecx, [edi + 4]
lea ebx, [eax + edi + 4]
mov eax, 0xffffffff
mov edi, ecx
lea esi, [esi]
movzx ecx, byte [edi]
mov edx, eax
add edi, 1
shr edx, 4
xor eax, ecx
shr cl, 4
and eax, 0xf
xor edx, dword [eax*4 + 0x44a6e0]
mov eax, edx
xor edx, ecx
and edx, 0xf
shr eax, 4
xor eax, dword [edx*4 + 0x44a6e0]
cmp ebx, edi
jne 0x426f00
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
lea ebx, [edi + 4]
lea edi, [edi + ecx + 4]
test ecx, ecx
jle 0x426f77
lea esi, [esi]
movzx ecx, byte [ebx]
mov edx, eax
add ebx, 1
shr edx, 4
xor eax, ecx
shr cl, 4
and eax, 0xf
xor edx, dword [eax*4 + 0x44a6e0]
mov eax, edx
xor edx, ecx
and edx, 0xf
shr eax, 4
xor eax, dword [edx*4 + 0x44a6e0]
cmp edi, ebx
jne 0x426f48
not eax
cmp dword [esp + 0x40], eax
je 0x4270f3
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x426faa
mov edx, dword [eax]
cmp word [edx + 0xa], 1
jle 0x427518
mov edx, dword [edx + 0xc]
cmp dword [edx + 8], 0x6d65b500
jne 0x427518
cmp byte [eax + 7], 0
jne 0x4270f3
mov edx, 4
mov ecx, 0x20
call fcn.0040a600
mov ecx, dword [esp + 0x2c]
mov dword [eax], 0x448548
mov ebx, eax
mov dword [eax + 8], str.PNGError
call fcn.0041f850
mov dword [esp + 0x4c], edx
movzx edx, byte [esi]
mov edi, eax
test dl, dl
jne 0x427835
lea ecx, [edi + 0xf]
call fcn.0040a0e0
mov dword [esp + 0x54], edx
lea edx, [eax + edx + 4]
lea ecx, [eax + 0xf]
mov dword [edx], 0x6e6f7277
mov dword [edx + 4], 0x72632067
mov dword [edx + 8], 0x6f662063
mov dword [edx + 0xc], 0x203a72
mov edx, eax
xor edx, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x58], eax
test ecx, edx
jns 0x427037
call fcn.004083d0
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x50], ecx
test edi, edi
jle 0x427090
lea eax, [edi + 1]
mov edx, edi
xor edx, eax
test eax, edx
js 0x4277a0
test eax, eax
js 0x427848
mov edx, dword [esp + 0x54]
mov dword [esp + 0x58], ecx
mov dword [esp + 8], eax
lea edx, [ecx + edx + 4]
mov ecx, dword [esp + 0x4c]
mov dword [esp], edx
add ecx, 4
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
lea edx, [edi + ecx]
xor eax, edx
xor edi, edx
test eax, edi
js 0x4277a0
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
mov dword [ebx + 4], 0
mov edx, str.PNGError
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x54]
mov dword [ebx + 0x10], eax
mov dword [esp + 8], 0x3af
mov dword [esp + 4], str.nimPNG.nim
mov dword [esp], str.parsePNG
call fcn.0040ada0
sub esp, 0xc
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4270e8
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
test eax, 0x40000000
je 0x4277e0
movzx edx, byte [esi]
test dl, dl
jne 0x427520
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov edx, edi
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call fcn.00421320
movzx edx, byte [esi]
sub esp, 0xc
mov ebx, eax
test dl, dl
jne 0x427458
mov dword [esp + 0x2c], edi
cmp edi, 0x49444154
je 0x4277b0
test eax, eax
je 0x4275ae
mov edx, dword [esp + 0x28]
mov ecx, eax
call fcn.00424a70
cmp byte [esi], 0
jne 0x427800
test al, al
jne 0x4272b1
mov edx, 4
mov ecx, 0x20
call fcn.0040a600
mov ecx, dword [esp + 0x2c]
mov dword [eax], 0x448548
mov edi, eax
mov dword [eax + 8], str.PNGError
call fcn.0041f850
cmp byte [esi], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], edx
jne 0x4277f1
lea ecx, [eax + 0x13]
call fcn.0040a0e0
mov dword [esp + 0x50], edx
lea edx, [eax + edx + 4]
lea ecx, [eax + 0x13]
mov dword [edx], 0x6f727265
mov dword [edx + 4], 0x61702072
mov dword [edx + 8], 0x20657372
mov dword [edx + 0xc], 0x6e756863
mov dword [edx + 0x10], 0x203a6b
mov edx, eax
xor edx, ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], eax
test ecx, edx
jns 0x4271e7
call fcn.004083d0
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x40]
test edx, edx
jle 0x427250
lea eax, [edx + 1]
xor edx, eax
test eax, edx
js 0x427821
test eax, eax
js 0x4278f4
mov edx, dword [esp + 0x50]
mov dword [esp + 0x54], ecx
mov dword [esp + 8], eax
lea edx, [ecx + edx + 4]
mov ecx, dword [esp + 0x38]
mov dword [esp], edx
add ecx, 4
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
add eax, ecx
mov ecx, dword [esp + 0x40]
xor edx, eax
xor ecx, eax
test edx, ecx
js 0x427821
mov dword [esp + 0x4c], eax
lea esi, [esi]
mov eax, dword [esp + 0x4c]
mov dword [edi + 4], 0
mov edx, str.PNGError
mov ecx, edi
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x50]
mov dword [edi + 0x10], eax
mov dword [esp + 8], 0x3b3
mov dword [esp + 4], str.nimPNG.nim
mov dword [esp], str.parsePNG
call fcn.0040ada0
sub esp, 0xc
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4272a8
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
test eax, 0x40000000
je 0x427881
cmp byte [esi], 0
jne 0x427800
mov edx, dword [esp + 0x28]
mov ecx, ebx
call fcn.00426790
cmp byte [esi], 0
jne 0x427800
test al, al
jne 0x427419
mov edx, 4
mov ecx, 0x20
call fcn.0040a600
mov ecx, dword [esp + 0x2c]
mov dword [eax], 0x448548
mov edi, eax
mov dword [eax + 8], str.PNGError
call fcn.0041f850
cmp byte [esi], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], edx
jne 0x42792d
lea ecx, [eax + 0xf]
call fcn.0040a0e0
mov dword [esp + 0x50], edx
lea edx, [eax + edx + 4]
lea ecx, [eax + 0xf]
mov dword [edx], 0x61766e69
mov dword [edx + 4], 0x2064696c
mov dword [edx + 8], 0x6e756863
mov dword [edx + 0xc], 0x203a6b
mov edx, eax
xor edx, ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], eax
test ecx, edx
jns 0x427350
call fcn.004083d0
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x40]
test edx, edx
jle 0x4273b8
lea eax, [edx + 1]
xor edx, eax
test eax, edx
js 0x42782b
test eax, eax
js 0x42793e
mov edx, dword [esp + 0x50]
mov dword [esp + 0x54], ecx
mov dword [esp + 8], eax
lea edx, [ecx + edx + 4]
mov ecx, dword [esp + 0x38]
mov dword [esp], edx
add ecx, 4
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
add eax, ecx
mov ecx, dword [esp + 0x40]
xor edx, eax
xor ecx, eax
test edx, ecx
js 0x42782b
mov dword [esp + 0x4c], eax
lea esi, [esi]
mov eax, dword [esp + 0x4c]
mov dword [edi + 4], 0
mov ecx, edi
mov edx, str.PNGError
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x50]
mov dword [edi + 0x10], eax
mov dword [esp + 8], 0x3b4
mov dword [esp + 4], str.nimPNG.nim
mov dword [esp], str.parsePNG
call fcn.0040ada0
sub esp, 0xc
mov edi, dword [esp + 0x38]
test edi, edi
je 0x427410
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
test eax, 0x40000000
je 0x4278e3
cmp byte [esi], 0
jne 0x427800
cmp dword [esp + 0x2c], 0x6663544c
je 0x427431
cmp dword [esp + 0x2c], 0x66644154
jne 0x4277b8
mov eax, dword [ebx]
cmp word [eax + 0xa], 1
jle 0x42744a
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 0x8db2f100
je 0x4275a0
call fcn.0040d230
movzx edx, byte [esi]
xor ebx, ebx
lea esi, [esi]
mov byte [esi], 0
mov ecx, ebx
mov byte [esp + 0x2c], dl
call fcn.0041f6c0
cmp byte [esi], 0
jne 0x4274b0
mov eax, dword [esp + 0x3c]
movzx edx, byte [esp + 0x2c]
test eax, eax
je 0x427489
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test eax, 0x40000000
je 0x427770
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4274a2
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test eax, 0x40000000
je 0x42757f
mov byte [esi], dl
test dl, dl
je 0x426e58
lea esi, [esi]
mov dword [esp + 0x2c], 0
mov ebp, 1
xor edi, edi
xor ebx, ebx
jmp 0x426cb7
mov dword [esp + 0x34], 0
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
jmp 0x426cb7
mov eax, ebp
test al, al
je 0x4278a3
lea esi, [esi]
nop
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x2c], 0
jmp 0x426cb7
call fcn.0040d230
movzx edx, byte [esi]
xor ebx, ebx
jmp 0x427458
mov edx, ebx
mov ecx, ebp
call fcn.00412330
cmp byte [esi], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], edx
je 0x426eb4
mov byte [esi], 0
xor ecx, ecx
call fcn.0041f6c0
cmp byte [esi], 0
jne 0x4274b0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4274b0
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test eax, 0x40000000
jne 0x4274b0
mov edx, 1
mov eax, dword [esp + 0x30]
mov byte [esp + 0x2c], dl
mov dword [esp], eax
call fcn.00407bd0
movzx edx, byte [esp + 0x2c]
jmp 0x4274a2
mov ecx, dword [esp + 0x48]
mov edx, ebx
call fcn.0040e070
movzx edx, byte [esi]
cmp dword [esp + 0x2c], 0x49454e44
jne 0x427520
test dl, dl
jne 0x427520
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x30]
test eax, eax
je 0x4275e1
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test eax, 0x40000000
je 0x427a94
test ebx, ebx
je 0x4275f1
test dword [ebx], 0x40000000
je 0x427a87
mov eax, dword [esp + 0x28]
movzx ebp, byte [esi]
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x4274f1
mov eax, dword [esp + 0x28]
mov ebx, ebp
xor ebx, 1
mov edx, dword [eax + 8]
xor eax, eax
jmp 0x427627
test bl, bl
je 0x427634
add eax, 1
cmp ecx, eax
jle 0x4278a3
mov edi, dword [edx + eax*4 + 4]
cmp dword [edi + 8], 0x49484452
jne 0x427618
mov eax, ebp
test al, al
jne 0x427500
xor eax, eax
jmp 0x427653
add eax, 1
cmp ecx, eax
jle 0x427977
mov ebx, dword [edx + eax*4 + 4]
cmp dword [ebx + 8], 0x49444154
jne 0x427648
mov ecx, dword [esp + 0x28]
mov edx, 0x49484452
call fcn.0041ffa0
movzx ebp, byte [esi]
mov ebx, eax
mov eax, ebp
test al, al
jne 0x427500
test ebx, ebx
je 0x42769e
mov eax, dword [ebx]
cmp word [eax + 0xa], 1
jle 0x427ae5
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 0x32af0d00
jne 0x427ae5
cmp byte [ebx + 0x28], 3
jne 0x4276d8
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x4279b7
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x5c]
jmp 0x4276cb
add eax, 1
cmp ecx, eax
je 0x4279b7
mov edi, dword [edx + eax*4 + 4]
cmp dword [edi + 8], 0x504c5445
jne 0x4276c0
mov ecx, dword [esp + 0x28]
mov edx, 0x49444154
call fcn.0041ffa0
movzx ebp, byte [esi]
mov edi, eax
mov eax, ebp
test al, al
jne 0x427a11
test edi, edi
je 0x427716
mov eax, dword [edi]
cmp word [eax + 0xa], 1
jle 0x427afe
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 0x7e5a0f00
jne 0x427afe
mov edx, dword [esp + 0x28]
mov ecx, edi
call fcn.00422530
movzx ebp, byte [esi]
mov ecx, ebp
test cl, cl
jne 0x427504
test al, al
je 0x427a20
mov edx, dword [esp + 0x28]
mov ecx, edi
call fcn.00425dd0
movzx ebp, byte [esi]
mov ecx, ebp
test cl, cl
jne 0x427504
test al, al
je 0x427aa5
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], eax
jmp 0x426cb7
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x2c], dl
mov dword [esp], eax
call fcn.00407bd0
movzx edx, byte [esp + 0x2c]
jmp 0x427489
mov byte [esi], 0
xor ecx, ecx
call fcn.0041f6c0
jmp 0x4274b0
call fcn.004083d0
jmp 0x427090
test eax, eax
je 0x427458
mov ecx, dword [esp + 0x44]
mov edx, ebx
call fcn.0040e0f0
movzx edx, byte [esi]
jmp 0x4275ae
mov eax, 0xffffffff
jmp 0x426f2f
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.00407bd0
jmp 0x4270e8
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x427293
lea esi, [esi]
mov edx, 1
jmp 0x427458
mov dword [esp + 0x34], 0
xor edi, edi
mov dword [esp + 0x2c], 0
jmp 0x426cb7
call fcn.004083d0
jmp 0x427250
call fcn.004083d0
jmp 0x4273b8
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x4270d3
xor ebx, ebx
jmp 0x427458
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call fcn.00408b10
jmp 0x427090
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00407bd0
jmp 0x4272a8
mov eax, dword [esp + 0x28]
mov ebp, edx
mov ecx, dword [eax + 4]
test ecx, ecx
jg 0x427603
mov ecx, 0x20
mov edx, 4
call fcn.0040a600
mov dword [eax], 0x448548
mov ecx, eax
mov dword [eax + 8], str.PNGError
mov dword [eax + 0xc], 0xd
mov dword [eax + 0x10], 0x44a9b8
mov dword [eax + 4], 0
mov dword [esp + 8], 0x3bb
jmp 0x426c8c
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00407bd0
jmp 0x427410
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call fcn.00408b10
jmp 0x427250
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x4273fb
jmp 0x427800
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call fcn.00408b10
jmp 0x4273b8
mov ecx, 0x20
mov edx, 4
call fcn.0040a600
mov dword [eax], 0x448548
mov ecx, eax
mov dword [eax + 8], str.PNGError
mov dword [eax + 0xc], 0xd
mov dword [eax + 0x10], 0x44a9a4
mov dword [eax + 4], 0
mov dword [esp + 8], 0x3bc
jmp 0x426c8c
mov edx, 4
mov ecx, 0x20
call fcn.0040a600
mov edx, str.PNGError
mov dword [eax], 0x448548
mov ecx, eax
mov dword [eax + 8], str.PNGError
mov dword [eax + 0xc], 0x17
mov dword [eax + 0x10], 0x44a988
mov dword [eax + 4], 0
mov dword [esp + 8], 0x3bf
mov dword [esp + 4], str.nimPNG.nim
mov dword [esp], str.parsePNG
call fcn.0040ada0
movzx ebp, byte [esi]
sub esp, 0xc
mov dword [esp + 0x2c], 0
xor edi, edi
jmp 0x426cb7
mov ecx, 0x20
mov edx, 4
call fcn.0040a600
mov dword [eax], 0x448548
mov ecx, eax
mov dword [eax + 8], str.PNGError
mov dword [eax + 0xc], 0x10
mov dword [eax + 0x10], 0x44a970
mov dword [eax + 4], 0
mov dword [esp + 8], 0x3c3
mov dword [esp + 4], str.nimPNG.nim
mov edx, str.PNGError
mov dword [esp], str.parsePNG
call fcn.0040ada0
movzx ebp, byte [esi]
sub esp, 0xc
mov dword [esp + 0x2c], 0
jmp 0x426cb7
mov dword [esp], ebx
call fcn.00407bd0
jmp 0x4275f1
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00407bd0
jmp 0x4275e1
mov ecx, 0x20
mov edx, 4
call fcn.0040a600
mov dword [eax], 0x448548
mov ecx, eax
mov dword [eax + 8], str.PNGError
mov dword [eax + 0xc], 8
mov dword [eax + 0x10], 0x44a960
mov dword [eax + 4], 0
mov dword [esp + 8], 0x3c4
jmp 0x427a5b
call fcn.0040d230
xor edi, edi
movzx ebp, byte [esi]
xor ebx, ebx
mov dword [esp + 0x2c], 0
jmp 0x426cb7
call fcn.0040d230
xor edi, edi
mov dword [esp + 0x2c], 0
movzx ebp, byte [esi]
jmp 0x426cb7