Function at 0x40dc40
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa8
push ebp
mov ebp, dword [esp + 0xb0]
test ebp, ebp
je 0x40ef01
cmp dword [esp + 0xb4], 0
je 0x40ef01
mov al, byte [ebp + 0x12c]
cmp al, 8
push ebx
push esi
push edi
jae 0x40dcdf
mov ebx, dword [esp + 0xc0]
movzx edi, al
mov esi, 8
sub esi, edi
push esi
lea eax, [edi + ebx + 0x20]
push eax
push ebp
call fcn.00410a10
push esi
add ebx, 0x20
push edi
push ebx
mov byte [ebp + 0x12c], 8
call fcn.0040d130
add esp, 0x18
test eax, eax
je 0x40dcd3
cmp edi, 4
jae 0x40dcc5
add esi, 0xfffffffc
push esi
push edi
push ebx
call fcn.0040d130
add esp, 0xc
test eax, eax
je 0x40dcc5
push str.Not_a_PNG_file
jmp 0x40dcca
push str.PNG_file_corrupted_by_ASCII_conversion
push ebp
call fcn.004161a0
add esp, 8
cmp edi, 3
jae 0x40dcdf
or dword [ebp + 0x68], 0x1000
mov al, 0x44
mov byte [esp + 0x8e], al
mov byte [esp + 0x15], al
mov byte [esp + 0x3f], al
mov byte [esp + 0x7f], al
mov al, 0x46
mov dl, 0x49
mov bl, 0x41
mov cl, 0x54
mov byte [esp + 0x25], al
mov byte [esp + 0x26], al
mov al, 0x73
mov byte [esp + 0x8c], dl
mov byte [esp + 0x8d], 0x48
mov byte [esp + 0x8f], 0x52
mov byte [esp + 0x90], 0
mov byte [esp + 0x14], dl
mov byte [esp + 0x16], bl
mov byte [esp + 0x17], cl
mov byte [esp + 0x18], 0
mov byte [esp + 0x3c], dl
mov byte [esp + 0x3d], 0x45
mov byte [esp + 0x3e], 0x4e
mov byte [esp + 0x40], 0
mov byte [esp + 0x1c], 0x50
mov byte [esp + 0x1d], 0x4c
mov byte [esp + 0x1e], cl
mov byte [esp + 0x1f], 0x45
mov byte [esp + 0x20], 0
mov byte [esp + 0x7c], 0x62
mov byte [esp + 0x7d], 0x4b
mov byte [esp + 0x7e], 0x47
mov byte [esp + 0x80], 0
mov byte [esp + 0x4c], 0x63
mov byte [esp + 0x4d], 0x48
mov byte [esp + 0x4e], 0x52
mov byte [esp + 0x4f], 0x4d
mov byte [esp + 0x50], 0
mov byte [esp + 0xa4], 0x67
mov byte [esp + 0xa5], bl
mov byte [esp + 0xa6], 0x4d
mov byte [esp + 0xa7], bl
mov byte [esp + 0xa8], 0
mov byte [esp + 0x5c], 0x68
mov byte [esp + 0x5d], dl
mov byte [esp + 0x5e], 0x53
mov byte [esp + 0x5f], cl
mov byte [esp + 0x60], 0
mov byte [esp + 0x64], 0x69
mov byte [esp + 0x65], 0x43
mov byte [esp + 0x66], 0x43
mov byte [esp + 0x67], 0x50
mov byte [esp + 0x68], 0
mov byte [esp + 0x24], 0x6f
mov byte [esp + 0x27], al
mov byte [esp + 0x28], 0
mov byte [esp + 0x6c], 0x70
mov byte [esp + 0x6d], 0x43
mov byte [esp + 0x6e], bl
mov byte [esp + 0x6f], 0x4c
mov byte [esp + 0x70], 0
mov byte [esp + 0x34], 0x70
mov byte [esp + 0x35], 0x48
mov byte [esp + 0x36], 0x59
mov byte [esp + 0x37], al
mov byte [esp + 0x38], 0
mov byte [esp + 0x44], al
mov byte [esp + 0x45], 0x42
mov byte [esp + 0x46], dl
mov byte [esp + 0x47], cl
mov byte [esp + 0x48], 0
mov byte [esp + 0x2c], al
mov byte [esp + 0x2d], 0x43
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], 0x4c
mov byte [esp + 0x30], 0
mov byte [esp + 0x74], al
mov byte [esp + 0x75], 0x50
mov byte [esp + 0x76], 0x4c
mov byte [esp + 0x77], cl
mov byte [esp + 0x78], 0
mov byte [esp + 0x54], al
mov al, 0x74
mov bl, 0x58
mov byte [esp + 0x55], 0x52
mov byte [esp + 0x56], 0x47
mov byte [esp + 0x57], 0x42
mov byte [esp + 0x58], 0
mov byte [esp + 0x84], al
mov byte [esp + 0x85], 0x45
mov byte [esp + 0x86], bl
mov byte [esp + 0x87], al
mov byte [esp + 0x88], 0
mov byte [esp + 0x9c], al
mov byte [esp + 0x9d], dl
mov byte [esp + 0x9e], 0x4d
mov byte [esp + 0x9f], 0x45
mov byte [esp + 0xa0], 0
mov byte [esp + 0xac], al
mov byte [esp + 0xad], 0x52
mov byte [esp + 0xae], 0x4e
mov byte [esp + 0xaf], 0x53
mov byte [esp + 0xb0], 0
mov byte [esp + 0x94], 0x7a
mov byte [esp + 0x95], cl
mov byte [esp + 0x96], bl
mov byte [esp + 0x97], al
mov byte [esp + 0x98], 0
lea edi, [ebp + 0x11c]
push 4
lea ecx, [esp + 0xb8]
push ecx
push ebp
call fcn.00410a10
lea edx, [esp + 0xc0]
push edx
push ebp
call fcn.00417670
push ebp
mov dword [esp + 0x28], eax
call fcn.0040d2a0
push 4
push edi
push ebp
call fcn.004165f0
add esp, 0x24
mov eax, 4
lea ecx, [esp + 0x14]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40df79
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40df61
test eax, eax
je 0x40dfd6
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40dfc8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40dfd6
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40dfc8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40dfd6
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40dfc8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40dfd6
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x40dfd6
test esi, esi
mov eax, 1
jg 0x40dfd8
or eax, 0xffffffff
jmp 0x40dfd8
xor eax, eax
test eax, eax
jne 0x40dfeb
mov eax, dword [ebp + 0x68]
test al, 8
je 0x40dfeb
or eax, 0x2000
mov dword [ebp + 0x68], eax
mov eax, 4
lea ecx, [esp + 0x8c]
mov edx, edi
lea esp, [esp]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e018
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e000
test eax, eax
je 0x40e075
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e067
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e075
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e067
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e075
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e067
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e075
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e075
test esi, esi
mov eax, 1
jg 0x40e077
or eax, 0xffffffff
jmp 0x40e077
xor eax, eax
test eax, eax
jne 0x40e096
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00417790
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x3c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e0b9
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e0a1
test eax, eax
je 0x40e116
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e108
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e116
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e108
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e116
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e108
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e116
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e116
test esi, esi
mov eax, 1
jg 0x40e118
or eax, 0xffffffff
jmp 0x40e118
xor eax, eax
test eax, eax
jne 0x40e137
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00417af0
add esp, 0xc
jmp 0x40df22
push edi
push ebp
call fcn.0040d750
add esp, 8
test eax, eax
mov edx, edi
mov eax, 4
je 0x40e326
lea ecx, [esp + 0x14]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e16c
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e154
test eax, eax
je 0x40e1c9
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e1bb
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e1c9
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e1bb
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e1c9
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e1bb
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e1c9
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e1c9
test esi, esi
mov eax, 1
jg 0x40e1cb
or eax, 0xffffffff
jmp 0x40e1cb
xor eax, eax
test eax, eax
jne 0x40e1d3
or dword [ebp + 0x68], 4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00419a00
add esp, 0xc
mov eax, 4
lea ecx, [esp + 0x1c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e20c
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e1f4
test eax, eax
je 0x40e269
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e25b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e269
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e25b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e269
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e25b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e269
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e269
test esi, esi
mov eax, 1
jg 0x40e26b
or eax, 0xffffffff
jmp 0x40e26b
xor eax, eax
test eax, eax
jne 0x40e278
or dword [ebp + 0x68], 2
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x14]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e29b
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e283
test eax, eax
je 0x40e2f8
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e2ea
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e2f8
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e2ea
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e2f8
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e2ea
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e2f8
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x40e2f8
test esi, esi
mov eax, 1
jg 0x40e2fa
or eax, 0xffffffff
jmp 0x40e2fa
xor eax, eax
test eax, eax
jne 0x40df22
mov eax, dword [ebp + 0x68]
test al, 1
jne 0x40eea1
push str.Missing_IHDR_before_IDAT
push ebp
call fcn.004161a0
add esp, 8
pop edi
pop esi
pop ebx
pop ebp
add esp, 0xa8
ret
lea ecx, [esp + 0x1c]
lea ebx, [ebx]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e348
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e330
test eax, eax
je 0x40e3a5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e397
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e3a5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e397
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e3a5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e397
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e3a5
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x40e3a5
test esi, esi
mov eax, 1
jg 0x40e3a7
or eax, 0xffffffff
jmp 0x40e3a7
xor eax, eax
test eax, eax
jne 0x40e3c6
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc0]
push ecx
push edx
push ebp
call fcn.00417950
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x14]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e3e9
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e3d1
test eax, eax
je 0x40e446
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e438
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e446
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e438
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e446
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e438
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e446
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x40e446
test esi, esi
mov eax, 1
jg 0x40e448
or eax, 0xffffffff
jmp 0x40e448
xor eax, eax
test eax, eax
je 0x40eec7
mov eax, 4
lea ecx, [esp + 0x7c]
mov edx, edi
jmp 0x40e460
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e478
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e460
test eax, eax
je 0x40e4d5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e4c7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e4d5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e4c7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e4d5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e4c7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e4d5
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e4d5
test esi, esi
mov eax, 1
jg 0x40e4d7
or eax, 0xffffffff
jmp 0x40e4d7
xor eax, eax
test eax, eax
jne 0x40e4f6
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00418c00
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x4c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e519
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e501
test eax, eax
je 0x40e576
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e568
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e576
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e568
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e576
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e568
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e576
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e576
test esi, esi
mov eax, 1
jg 0x40e578
or eax, 0xffffffff
jmp 0x40e578
xor eax, eax
test eax, eax
jne 0x40e597
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00417e50
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0xa4]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e5bd
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e5a5
test eax, eax
je 0x40e61a
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e60c
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e61a
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e60c
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e61a
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e60c
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e61a
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e61a
test esi, esi
mov eax, 1
jg 0x40e61c
or eax, 0xffffffff
jmp 0x40e61c
xor eax, eax
test eax, eax
jne 0x40e63b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00417b40
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x5c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e65e
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e646
test eax, eax
je 0x40e6bb
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e6ad
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e6bb
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e6ad
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e6bb
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e6ad
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e6bb
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e6bb
test esi, esi
mov eax, 1
jg 0x40e6bd
or eax, 0xffffffff
jmp 0x40e6bd
xor eax, eax
test eax, eax
jne 0x40e6dc
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00418e20
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x24]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e6ff
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e6e7
test eax, eax
je 0x40e75c
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e74e
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e75c
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e74e
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e75c
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e74e
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e75c
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e75c
test esi, esi
mov eax, 1
jg 0x40e75e
or eax, 0xffffffff
jmp 0x40e75e
xor eax, eax
test eax, eax
jne 0x40e77d
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.004190c0
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x6c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e7a0
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e788
test eax, eax
je 0x40e7fd
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e7ef
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e7fd
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e7ef
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e7fd
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e7ef
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e7fd
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e7fd
test esi, esi
mov eax, 1
jg 0x40e7ff
or eax, 0xffffffff
jmp 0x40e7ff
xor eax, eax
test eax, eax
jne 0x40e81e
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.004191e0
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x2c]
mov edx, edi
lea esp, [esp]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e848
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e830
test eax, eax
je 0x40e8a5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e897
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e8a5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e897
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e8a5
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e897
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e8a5
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e8a5
test esi, esi
mov eax, 1
jg 0x40e8a7
or eax, 0xffffffff
jmp 0x40e8a7
xor eax, eax
test eax, eax
jne 0x40e8c6
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.004194a0
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x34]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e8e9
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e8d1
test eax, eax
je 0x40e946
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e938
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e946
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e938
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e946
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e938
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e946
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e946
test esi, esi
mov eax, 1
jg 0x40e948
or eax, 0xffffffff
jmp 0x40e948
xor eax, eax
test eax, eax
jne 0x40e967
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00418fa0
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x44]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40e98a
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e972
test eax, eax
je 0x40e9e7
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e9d9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e9e7
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e9d9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e9e7
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40e9d9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e9e7
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40e9e7
test esi, esi
mov eax, 1
jg 0x40e9e9
or eax, 0xffffffff
jmp 0x40e9e9
xor eax, eax
test eax, eax
jne 0x40ea08
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00417cd0
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x54]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40ea2b
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40ea13
test eax, eax
je 0x40ea88
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ea7a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ea88
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ea7a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ea88
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ea7a
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ea88
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40ea88
test esi, esi
mov eax, 1
jg 0x40ea8a
or eax, 0xffffffff
jmp 0x40ea8a
xor eax, eax
test eax, eax
jne 0x40eaa9
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00418340
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x64]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40eacc
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40eab4
test eax, eax
je 0x40eb29
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40eb1b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40eb29
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40eb1b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40eb29
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40eb1b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40eb29
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40eb29
test esi, esi
mov eax, 1
jg 0x40eb2b
or eax, 0xffffffff
jmp 0x40eb2b
xor eax, eax
test eax, eax
jne 0x40eb4a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00418540
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x74]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40eb6d
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40eb55
test eax, eax
je 0x40ebca
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ebbc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ebca
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ebbc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ebca
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ebbc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ebca
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40ebca
test esi, esi
mov eax, 1
jg 0x40ebcc
or eax, 0xffffffff
jmp 0x40ebcc
xor eax, eax
test eax, eax
jne 0x40ebeb
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00418700
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x84]
mov edx, edi
lea esp, [esp]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40ec18
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40ec00
test eax, eax
je 0x40ec75
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ec67
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ec75
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ec67
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ec75
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ec67
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ec75
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40ec75
test esi, esi
mov eax, 1
jg 0x40ec77
or eax, 0xffffffff
jmp 0x40ec77
xor eax, eax
test eax, eax
jne 0x40ec96
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00419770
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x9c]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40ecbc
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40eca4
test eax, eax
je 0x40ed19
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ed0b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ed19
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ed0b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ed19
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ed0b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ed19
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40ed19
test esi, esi
mov eax, 1
jg 0x40ed1b
or eax, 0xffffffff
jmp 0x40ed1b
xor eax, eax
test eax, eax
jne 0x40ed3a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00419660
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0xac]
mov edx, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40ed60
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40ed48
test eax, eax
je 0x40edbd
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40edaf
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40edbd
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40edaf
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40edbd
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40edaf
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40edbd
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40edbd
test esi, esi
mov eax, 1
jg 0x40edbf
or eax, 0xffffffff
jmp 0x40edbf
xor eax, eax
test eax, eax
jne 0x40edde
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.00418950
add esp, 0xc
jmp 0x40df22
mov eax, 4
lea ecx, [esp + 0x94]
mov edx, edi
lea esp, [esp]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40ee08
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40edf0
test eax, eax
je 0x40ee65
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ee57
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ee65
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ee57
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ee65
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x40ee57
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40ee65
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40ee65
test esi, esi
mov eax, 1
jg 0x40ee67
or eax, 0xffffffff
jmp 0x40ee67
xor eax, eax
test eax, eax
jne 0x40ee86
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
push edx
push eax
push ebp
call fcn.004198a0
add esp, 0xc
jmp 0x40df22
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc0]
push ecx
push edx
push ebp
call fcn.00419a00
add esp, 0xc
jmp 0x40df22
cmp byte [ebp + 0x126], 3
jne 0x40eefe
test al, 2
jne 0x40eefe
push str.Missing_PLTE_before_IDAT
push ebp
call fcn.004161a0
add esp, 8
pop edi
pop esi
pop ebx
pop ebp
add esp, 0xa8
ret
mov eax, dword [ebp + 0x68]
test al, 1
jne 0x40eed5
push str.Missing_IHDR_before_IDAT
jmp 0x40eee7
cmp byte [ebp + 0x126], 3
jne 0x40eef0
test al, 2
jne 0x40eef0
push str.Missing_PLTE_before_IDAT
push ebp
call fcn.004161a0
add esp, 8
mov eax, dword [esp + 0x10]
or dword [ebp + 0x68], 4
mov dword [ebp + 0x10c], eax
pop edi
pop esi
pop ebx
pop ebp
add esp, 0xa8
ret