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

Disassembly:
sub esp, 0xd4
mov eax, dword [0x485884]
xor eax, esp
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xdc]
push ebx
push ebp
mov ebp, dword [esp + 0xe0]
test ebp, ebp
push esi
push edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], eax
je 0x40fe54
test eax, eax
je 0x40fe54
push eax
mov ebx, ebp
call fcn.00418960
mov cl, 0x44
mov byte [esp + 0xc6], cl
mov byte [esp + 0x25], cl
mov byte [esp + 0x47], cl
mov byte [esp + 0x97], cl
mov cl, 0x69
mov byte [esp + 0x4c], cl
mov byte [esp + 0xac], cl
mov cl, 0x46
mov al, 0x54
mov bl, 0x4c
mov byte [esp + 0xa5], cl
mov byte [esp + 0xa6], cl
mov cl, 0x73
mov dl, 0x74
add esp, 4
mov byte [esp + 0xc0], 0x49
mov byte [esp + 0xc1], 0x48
mov byte [esp + 0xc3], 0x52
mov byte [esp + 0xc4], 0
mov byte [esp + 0x20], 0x49
mov byte [esp + 0x22], 0x41
mov byte [esp + 0x23], al
mov byte [esp + 0x24], 0
mov byte [esp + 0x40], 0x49
mov byte [esp + 0x41], 0x45
mov byte [esp + 0x42], 0x4e
mov byte [esp + 0x44], 0
mov byte [esp + 0x28], 0x50
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], al
mov byte [esp + 0x2b], 0x45
mov byte [esp + 0x2c], 0
mov byte [esp + 0x90], 0x62
mov byte [esp + 0x91], 0x4b
mov byte [esp + 0x92], 0x47
mov byte [esp + 0x94], 0
mov byte [esp + 0x50], 0x63
mov byte [esp + 0x51], 0x48
mov byte [esp + 0x52], 0x52
mov byte [esp + 0x53], 0x4d
mov byte [esp + 0x54], 0
mov byte [esp + 0xd0], 0x67
mov byte [esp + 0xd1], 0x41
mov byte [esp + 0xd2], 0x4d
mov byte [esp + 0xd3], 0x41
mov byte [esp + 0xd4], 0
mov byte [esp + 0x60], 0x68
mov byte [esp + 0x61], 0x49
mov byte [esp + 0x62], 0x53
mov byte [esp + 0x63], al
mov byte [esp + 0x64], 0
mov byte [esp + 0x49], 0x43
mov byte [esp + 0x4a], 0x43
mov byte [esp + 0x4b], 0x50
mov byte [esp + 0x4c], 0
mov byte [esp + 0xa9], al
mov byte [esp + 0xaa], 0x58
mov byte [esp + 0xab], dl
mov byte [esp + 0xac], 0
mov byte [esp + 0xa0], 0x6f
mov byte [esp + 0xa3], cl
mov byte [esp + 0xa4], 0
mov byte [esp + 0x70], 0x70
mov byte [esp + 0x71], 0x43
mov byte [esp + 0x72], 0x41
mov byte [esp + 0x73], bl
mov byte [esp + 0x74], 0
mov byte [esp + 0x80], 0x70
mov byte [esp + 0x81], 0x48
mov byte [esp + 0x82], 0x59
mov byte [esp + 0x83], cl
mov byte [esp + 0x84], 0
mov byte [esp + 0xb0], cl
mov byte [esp + 0xb1], 0x42
mov byte [esp + 0xb2], 0x49
mov byte [esp + 0xb3], al
mov byte [esp + 0xb4], 0
mov byte [esp + 0x30], cl
mov byte [esp + 0x58], cl
mov byte [esp + 0x38], cl
mov cl, 0x66
mov byte [esp + 0x33], bl
mov byte [esp + 0x5a], bl
mov byte [esp + 0xbb], bl
mov byte [esp + 0xcb], bl
mov byte [esp + 0x31], 0x43
mov byte [esp + 0x32], 0x41
mov byte [esp + 0x34], 0
mov byte [esp + 0x59], 0x50
mov byte [esp + 0x5b], al
mov byte [esp + 0x5c], 0
mov byte [esp + 0x39], 0x52
mov byte [esp + 0x3a], 0x47
mov byte [esp + 0x3b], 0x42
mov byte [esp + 0x3c], 0
mov byte [esp + 0x68], dl
mov byte [esp + 0x69], 0x45
mov byte [esp + 0x6a], 0x58
mov byte [esp + 0x6b], dl
mov byte [esp + 0x6c], 0
mov byte [esp + 0x78], dl
mov byte [esp + 0x79], 0x49
mov byte [esp + 0x7a], 0x4d
mov byte [esp + 0x7b], 0x45
mov byte [esp + 0x7c], 0
mov byte [esp + 0x88], dl
mov byte [esp + 0x89], 0x52
mov byte [esp + 0x8a], 0x4e
mov byte [esp + 0x8b], 0x53
mov byte [esp + 0x8c], 0
mov byte [esp + 0x98], 0x7a
mov byte [esp + 0x99], al
mov byte [esp + 0x9a], 0x58
mov byte [esp + 0x9b], dl
mov byte [esp + 0x9c], 0
mov byte [esp + 0xb8], 0x61
mov byte [esp + 0xb9], 0x63
mov byte [esp + 0xba], al
mov byte [esp + 0xbc], 0
mov byte [esp + 0xc8], cl
mov byte [esp + 0xc9], 0x63
mov byte [esp + 0xca], al
mov byte [esp + 0xcc], 0
mov byte [esp + 0xd8], cl
mov byte [esp + 0xd9], 0x64
mov byte [esp + 0xda], 0x41
mov byte [esp + 0xdb], al
mov byte [esp + 0xdc], 0
add ebp, 0x11c
mov ebx, 1
lea ebx, [ebx]
mov ecx, dword [esp + 0x14]
call fcn.00418a00
mov dword [esp + 0x18], eax
mov eax, 4
lea ecx, [esp + 0x20]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40ed90
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40ed78
test eax, eax
je 0x40ede1
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40edd6
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40ede1
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40edd6
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40ede1
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40edd6
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40ede1
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40ede1
test esi, esi
mov eax, ebx
jg 0x40ede3
or eax, 0xffffffff
jmp 0x40ede3
xor eax, eax
test eax, eax
jne 0x40edfa
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x6c]
test al, 8
je 0x40edfa
or eax, 0x2000
mov dword [ecx + 0x6c], eax
mov eax, 4
lea ecx, [esp + 0xc0]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40ee20
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40ee08
test eax, eax
je 0x40ee71
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40ee66
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40ee71
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40ee66
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40ee71
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40ee66
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40ee71
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40ee71
test esi, esi
mov eax, ebx
jg 0x40ee73
or eax, 0xffffffff
jmp 0x40ee73
xor eax, eax
test eax, eax
jne 0x40ee92
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push edx
push eax
call fcn.00419000
add esp, 8
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x40]
mov edx, ebp
lea ecx, [ecx]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40eeb8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40eea0
test eax, eax
je 0x40ef09
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40eefe
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40ef09
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40eefe
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40ef09
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40eefe
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40ef09
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x40ef09
test esi, esi
mov eax, ebx
jg 0x40ef0b
or eax, 0xffffffff
jmp 0x40ef0b
xor eax, eax
test eax, eax
mov ecx, dword [esp + 0x14]
jne 0x40ef21
mov eax, dword [esp + 0x18]
call fcn.00419330
jmp 0x40ed60
push ebp
call fcn.00412a10
add esp, 4
test eax, eax
mov edx, ebp
mov eax, 4
je 0x40f0ee
lea ecx, [esp + 0x20]
lea ecx, [ecx]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40ef58
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40ef40
test eax, eax
je 0x40efa9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40ef9e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40efa9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40ef9e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40efa9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40ef9e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40efa9
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x40efa9
test esi, esi
mov eax, ebx
jg 0x40efab
or eax, 0xffffffff
jmp 0x40efab
xor eax, eax
test eax, eax
mov ecx, dword [esp + 0x14]
jne 0x40efb7
or dword [ecx + 0x6c], 4
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push eax
push edx
call fcn.0041bb90
add esp, 8
mov eax, 4
lea ecx, [esp + 0x28]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40efec
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40efd4
test eax, eax
je 0x40f03d
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f032
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f03d
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f032
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f03d
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f032
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f03d
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40f03d
test esi, esi
mov eax, ebx
jg 0x40f03f
or eax, 0xffffffff
jmp 0x40f03f
xor eax, eax
test eax, eax
jne 0x40f050
mov eax, dword [esp + 0x14]
or dword [eax + 0x6c], 2
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x20]
mov edx, ebp
jmp 0x40f060
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f078
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f060
test eax, eax
je 0x40f0c9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f0be
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f0c9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f0be
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f0c9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f0be
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f0c9
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40f0c9
test esi, esi
mov eax, ebx
jg 0x40f0cb
or eax, 0xffffffff
jmp 0x40f0cb
xor eax, eax
test eax, eax
jne 0x40ed60
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x6c]
test bl, al
jne 0x40fddc
mov edi, str.Missing_IHDR_before_IDAT
mov eax, ecx
jmp fcn.0040e020
lea ecx, [esp + 0x28]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f10a
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f0f2
test eax, eax
je 0x40f15b
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f150
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f15b
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f150
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f15b
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f150
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f15b
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40f15b
test esi, esi
mov eax, ebx
jg 0x40f15d
or eax, 0xffffffff
jmp 0x40f15d
xor eax, eax
test eax, eax
jne 0x40f17b
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004191c0
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x20]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f19e
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f186
test eax, eax
je 0x40f1ef
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f1e4
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f1ef
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f1e4
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f1ef
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f1e4
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f1ef
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x40f1ef
test esi, esi
mov eax, ebx
jg 0x40f1f1
or eax, 0xffffffff
jmp 0x40f1f1
xor eax, eax
test eax, eax
je 0x40fdf5
mov eax, 4
lea ecx, [esp + 0x90]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f21f
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f207
test eax, eax
je 0x40f270
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f265
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f270
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f265
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f270
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f265
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f270
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40f270
test esi, esi
mov eax, ebx
jg 0x40f272
or eax, 0xffffffff
jmp 0x40f272
xor eax, eax
test eax, eax
jne 0x40f290
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.0041a2f0
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x50]
mov edx, ebp
jmp 0x40f2a0
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f2b8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f2a0
test eax, eax
je 0x40f309
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f2fe
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f309
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f2fe
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f309
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f2fe
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f309
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x40f309
test esi, esi
mov eax, ebx
jg 0x40f30b
or eax, 0xffffffff
jmp 0x40f30b
xor eax, eax
test eax, eax
jne 0x40f329
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push eax
call fcn.00419600
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0xd0]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f34f
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f337
test eax, eax
je 0x40f3a0
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f395
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f3a0
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f395
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f3a0
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f395
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f3a0
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x40f3a0
test esi, esi
mov eax, ebx
jg 0x40f3a2
or eax, 0xffffffff
jmp 0x40f3a2
xor eax, eax
test eax, eax
jne 0x40f3c0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push edx
call fcn.00419370
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x60]
mov edx, ebp
jmp 0x40f3d0
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f3e8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f3d0
test eax, eax
je 0x40f439
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f42e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f439
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f42e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f439
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f42e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f439
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x40f439
test esi, esi
mov eax, ebx
jg 0x40f43b
or eax, 0xffffffff
jmp 0x40f43b
xor eax, eax
test eax, eax
jne 0x40f459
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.0041a520
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0xa0]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f47f
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f467
test eax, eax
je 0x40f4d0
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f4c5
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f4d0
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f4c5
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f4d0
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f4c5
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f4d0
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40f4d0
test esi, esi
mov eax, ebx
jg 0x40f4d2
or eax, 0xffffffff
jmp 0x40f4d2
xor eax, eax
test eax, eax
jne 0x40f4f0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0041a780
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x70]
mov edx, ebp
jmp 0x40f500
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f518
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f500
test eax, eax
je 0x40f569
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f55e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f569
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f55e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f569
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f55e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f569
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x40f569
test esi, esi
mov eax, ebx
jg 0x40f56b
or eax, 0xffffffff
jmp 0x40f56b
xor eax, eax
test eax, eax
jne 0x40f589
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
call fcn.0041a8f0
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x30]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f5ac
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f594
test eax, eax
je 0x40f5fd
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f5f2
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f5fd
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f5f2
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f5fd
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f5f2
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f5fd
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x40f5fd
test esi, esi
mov eax, ebx
jg 0x40f5ff
or eax, 0xffffffff
jmp 0x40f5ff
xor eax, eax
test eax, eax
jne 0x40f61d
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push edx
call fcn.0041ad00
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x80]
mov edx, ebp
jmp 0x40f630
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f648
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f630
test eax, eax
je 0x40f699
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f68e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f699
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f68e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f699
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f68e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f699
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x40f699
test esi, esi
mov eax, ebx
jg 0x40f69b
or eax, 0xffffffff
jmp 0x40f69b
xor eax, eax
test eax, eax
jne 0x40f6b9
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0041a640
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0xb0]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f6df
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f6c7
test eax, eax
je 0x40f730
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f725
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f730
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f725
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f730
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f725
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f730
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40f730
test esi, esi
mov eax, ebx
jg 0x40f732
or eax, 0xffffffff
jmp 0x40f732
xor eax, eax
test eax, eax
jne 0x40f750
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004194a0
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x38]
mov edx, ebp
jmp 0x40f760
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f778
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f760
test eax, eax
je 0x40f7c9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f7be
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f7c9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f7be
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f7c9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f7be
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f7c9
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x40f7c9
test esi, esi
mov eax, ebx
jg 0x40f7cb
or eax, 0xffffffff
jmp 0x40f7cb
xor eax, eax
test eax, eax
jne 0x40f7e5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
call fcn.004198f0
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x48]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f808
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f7f0
test eax, eax
je 0x40f859
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f84e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f859
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f84e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f859
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f84e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f859
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40f859
test esi, esi
mov eax, ebx
jg 0x40f85b
or eax, 0xffffffff
jmp 0x40f85b
xor eax, eax
test eax, eax
jne 0x40f879
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00419ad0
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x58]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f89c
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f884
test eax, eax
je 0x40f8ed
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f8e2
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f8ed
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f8e2
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f8ed
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40f8e2
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f8ed
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x40f8ed
test esi, esi
mov eax, ebx
jg 0x40f8ef
or eax, 0xffffffff
jmp 0x40f8ef
xor eax, eax
test eax, eax
jne 0x40f90d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
call fcn.00419da0
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x68]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f930
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f918
test eax, eax
je 0x40f981
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f976
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f981
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f976
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f981
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40f976
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40f981
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x40f981
test esi, esi
mov eax, ebx
jg 0x40f983
or eax, 0xffffffff
jmp 0x40f983
xor eax, eax
test eax, eax
jne 0x40f9a1
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push edx
call fcn.0041afd0
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x78]
mov edx, ebp
lea esp, [esp]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f9c8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f9b0
test eax, eax
je 0x40fa19
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fa0e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fa19
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fa0e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fa19
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fa0e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fa19
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x40fa19
test esi, esi
mov eax, ebx
jg 0x40fa1b
or eax, 0xffffffff
jmp 0x40fa1b
xor eax, eax
test eax, eax
jne 0x40fa39
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0041aea0
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x88]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40fa5f
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40fa47
test eax, eax
je 0x40fab0
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40faa5
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fab0
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40faa5
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fab0
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40faa5
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fab0
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40fab0
test esi, esi
mov eax, ebx
jg 0x40fab2
or eax, 0xffffffff
jmp 0x40fab2
xor eax, eax
test eax, eax
jne 0x40fad0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0041a0f0
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0x98]
mov edx, ebp
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40faf8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40fae0
test eax, eax
je 0x40fb49
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fb3e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fb49
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fb3e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fb49
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fb3e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fb49
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x40fb49
test esi, esi
mov eax, ebx
jg 0x40fb4b
or eax, 0xffffffff
jmp 0x40fb4b
xor eax, eax
test eax, eax
jne 0x40fb6a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x18]
push ecx
call fcn.0041b230
add esp, 8
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0xa8]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40fb90
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40fb78
test eax, eax
je 0x40fbe1
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40fbd6
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fbe1
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40fbd6
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fbe1
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40fbd6
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fbe1
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40fbe1
test esi, esi
mov eax, ebx
jg 0x40fbe3
or eax, 0xffffffff
jmp 0x40fbe3
xor eax, eax
test eax, eax
jne 0x40fc02
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
push ecx
push edx
call fcn.0041b4e0
add esp, 8
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0xb8]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40fc28
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40fc10
test eax, eax
je 0x40fc79
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fc6e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fc79
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fc6e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fc79
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fc6e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fc79
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x40fc79
test esi, esi
mov eax, ebx
jg 0x40fc7b
or eax, 0xffffffff
jmp 0x40fc7b
xor eax, eax
test eax, eax
jne 0x40fc99
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0041b820
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0xc8]
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40fcbf
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40fca7
test eax, eax
je 0x40fd10
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40fd05
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fd10
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40fd05
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fd10
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40fd05
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fd10
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40fd10
test esi, esi
mov eax, ebx
jg 0x40fd12
or eax, 0xffffffff
jmp 0x40fd12
xor eax, eax
test eax, eax
jne 0x40fd30
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0041b930
add esp, 4
jmp 0x40ed60
mov eax, 4
lea ecx, [esp + 0xd8]
mov edx, ebp
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40fd58
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40fd40
test eax, eax
je 0x40fda9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fd9e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fda9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fd9e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fda9
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40fd9e
sub eax, ebx
add ecx, ebx
add edx, ebx
test eax, eax
je 0x40fda9
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x40fda9
test esi, esi
mov eax, ebx
jg 0x40fdab
or eax, 0xffffffff
jmp 0x40fdab
xor eax, eax
test eax, eax
jne 0x40fdc1
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
call fcn.0041bae0
jmp 0x40ed60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0041bb90
add esp, 8
jmp 0x40ed60
cmp byte [ecx + 0x126], 3
jne 0x40fe54
test al, 2
jne 0x40fe54
mov edi, str.Missing_PLTE_before_IDAT
mov eax, ecx
jmp fcn.0040e020
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x6c]
test bl, al
jne 0x40fe0c
mov edi, str.Missing_IHDR_before_IDAT
mov eax, ecx
jmp fcn.0040e020
cmp byte [ecx + 0x126], 3
jne 0x40fe25
test al, 2
jne 0x40fe25
mov edi, str.Missing_PLTE_before_IDAT
mov eax, ecx
jmp fcn.0040e020
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 8]
test eax, 0x10000
je 0x40fe46
test eax, 0x20000
jne 0x40fe46
or dword [ecx + 0x268], ebx
add dword [edx + 0xf0], ebx
mov edx, dword [esp + 0x18]
or dword [ecx + 0x6c], 4
mov dword [ecx + 0x10c], edx
mov ecx, dword [esp + 0xe0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00448fb3
add esp, 0xd4
ret