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

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
sub esp, 0x11c
mov eax, dword [esp + 0x130]
mov esi, dword [esp + 0x138]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x13c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x134]
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi], 8
mov ecx, dword [ebp + 0xac]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xb0]
cmp ecx, eax
jb 0x422120
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jne 0x422550
lea esi, [esi]
nop
mov dword [esp], 0x4e9010
call sym.___emutls_get_address
mov dword [eax], str.Not_a_PNG
mov edx, dword [ebp + 0xb8]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0xb4]
mov dword [ebp + 0xb0], edx
mov dword [ebp + 0xac], eax
cmp eax, edx
jae 0x4220c0
lea edi, [eax + 1]
mov dword [esp + 0x34], edi
mov dword [ebp + 0xac], edi
movzx edi, byte [eax]
mov ecx, edi
cmp cl, 0x42
jne 0x42210b
mov edi, dword [esp + 0x34]
cmp edi, edx
jae 0x422618
lea edx, [edi + 1]
mov dword [ebp + 0xac], edx
movzx edx, byte [edi]
cmp dl, 0x4d
jne 0x422623
mov eax, ebp
call sym.stbi__get32le_stbi__context_
mov eax, ebp
call sym.stbi__get16le_stbi__context_
mov eax, ebp
call sym.stbi__get16le_stbi__context_
mov eax, ebp
call sym.stbi__get32le_stbi__context_
mov eax, ebp
call sym.stbi__get32le_stbi__context_
mov edx, eax
and edx, 0xffffffef
cmp eax, 0xc
je 0x42265a
cmp edx, 0x28
je 0x42265a
cmp edx, 0x6c
je 0x42265a
mov edx, dword [ebp + 0xb8]
mov eax, dword [ebp + 0xb4]
lea esi, [esi]
mov dword [ebp + 0xac], eax
mov dword [ebp + 0xb0], edx
mov eax, ebp
call sym.stbi__gif_test_raw_stbi__context_
mov edx, dword [ebp + 0xb4]
mov dword [esp + 0x38], eax
mov edi, eax
mov eax, dword [ebp + 0xb8]
mov dword [ebp + 0xac], edx
mov dword [ebp + 0xb0], eax
test edi, edi
jne 0x4225a0
mov eax, ebp
call sym.stbi__get32be_stbi__context_
mov edx, dword [ebp + 0xb4]
mov ecx, eax
mov eax, dword [ebp + 0xb8]
mov dword [ebp + 0xac], edx
mov dword [ebp + 0xb0], eax
cmp ecx, 0x38425053
je 0x422722
cmp edx, eax
jb 0x4226e8
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jne 0x423230
lea esi, [esi]
mov dword [ebp + 0xac], edx
mov dword [ebp + 0xb0], eax
mov dword [esp + 4], 1
mov dword [esp], 0x4818
call sym._calloc
mov ebx, eax
test eax, eax
je 0x422e20
mov dword [eax], ebp
mov edx, 1
mov dword [eax + 0x480c], 0x407720
mov dword [eax + 0x4810], 0x407ec0
mov dword [eax + 0x4814], 0x407c30
call sym.stbi__decode_jpeg_header_stbi__jpeg__int_
mov ecx, dword [ebp + 0xb8]
mov edi, eax
mov eax, dword [ebp + 0xb4]
mov dword [ebp + 0xb0], ecx
mov dword [ebp + 0xac], eax
mov dword [esp], ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], ecx
call sym._free
test edi, edi
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
je 0x422e36
mov dword [esp + 4], 1
mov dword [esp], 0x4818
call sym._calloc
mov dword [esp + 0x54], eax
test eax, eax
je 0x424079
cmp dword [esp + 0x24], 4
mov dword [eax], ebp
mov dword [eax + 0x480c], 0x407720
mov dword [eax + 0x4810], 0x407ec0
mov dword [eax + 0x4814], 0x407c30
mov dword [ebp + 8], 0
ja 0x4232ca
call sym.stbi__decode_jpeg_image_stbi__jpeg_
test eax, eax
mov eax, dword [esp + 0x54]
je 0x42438e
mov ebp, dword [eax]
mov ecx, dword [esp + 0x24]
mov eax, dword [ebp + 8]
mov dword [esp + 0x40], eax
test ecx, ecx
jne 0x42343e
cmp eax, 2
jg 0x423624
mov dword [esp + 0x24], 1
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x4232d4
mov byte [esp + 0x64], 0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x44], ebp
lea ebx, [esp + 0x90]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea edi, [eax + 0x46a0]
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov esi, dword [ebp]
mov ebp, eax
mov dword [esp + 0x34], esi
jmp 0x42202b
mov eax, sym.stbi__resample_row_generic_unsigned_char__unsigned_char__unsigned_char__int__int_
cmp ecx, 2
je 0x422d89
mov dword [ebx], eax
mov esi, dword [esp + 0x40]
add edi, 0x48
add ebx, 0x20
add dword [esp + 0x38], 1
mov eax, dword [esp + 0x38]
cmp eax, esi
je 0x4232ed
mov esi, dword [esp + 0x34]
add esi, 3
mov dword [esp], esi
call sym._malloc
mov dword [edi + 0x34], eax
test eax, eax
je 0x424aea
mov eax, dword [ebp + 0x4684]
cdq
idiv dword [edi]
mov ecx, eax
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 0x4688]
cdq
idiv dword [edi + 4]
xor edx, edx
mov dword [ebx + 0x10], eax
mov esi, eax
sar eax, 1
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov dword [ebx + 0x1c], 0
mov dword [esp + 0x34], eax
lea eax, [eax + ecx - 1]
div ecx
mov dword [ebx + 0x14], eax
mov eax, dword [edi + 0x28]
mov dword [ebx + 8], eax
mov dword [ebx + 4], eax
cmp ecx, 1
jne 0x422000
mov eax, sym.resample_row_1_unsigned_char__unsigned_char__unsigned_char__int__int_
cmp esi, 1
je 0x42200e
cmp esi, 2
mov eax, sym.stbi__resample_row_v_2_unsigned_char__unsigned_char__unsigned_char__int__int_
mov esi, sym.stbi__resample_row_generic_unsigned_char__unsigned_char__unsigned_char__int__int_
cmovne eax, esi
jmp 0x42200e
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x421e08
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov ecx, dword [ebp + 0xac]
mov edx, eax
mov eax, dword [ebp + 0xb4]
sub ecx, eax
add dword [ebp + 0xa8], ecx
test edx, edx
jne 0x4226ca
mov dword [ebp + 0x20], 0
mov byte [ebp + 0x28], 0
mov edx, dword [ebp + 0xb8]
jmp 0x421e08
lea edx, [ecx + 1]
mov dword [ebp + 0xac], edx
movzx ecx, byte [ecx]
cmp cl, 0x89
jne 0x421d40
cmp edx, eax
jb 0x422190
mov edx, dword [ebp + 0x20]
test edx, edx
je 0x421d40
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
je 0x4226a8
lea ecx, [ebp + 0x29]
add eax, edi
movzx edx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], ecx
jmp 0x42219c
lea ecx, [edx + 1]
mov dword [ebp + 0xac], ecx
movzx edx, byte [edx]
cmp dl, 0x50
jne 0x421d40
cmp ecx, eax
jb 0x422200
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x421d40
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
je 0x4226a8
lea edx, [ebp + 0x29]
add eax, edi
movzx ecx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], edx
jmp 0x42220c
lea edx, [ecx + 1]
mov dword [ebp + 0xac], edx
movzx ecx, byte [ecx]
cmp cl, 0x4e
jne 0x421d40
cmp edx, eax
jb 0x422270
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x421d40
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
je 0x4226a8
lea ecx, [ebp + 0x29]
add eax, edi
movzx edx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], ecx
jmp 0x42227c
lea ecx, [edx + 1]
mov dword [ebp + 0xac], ecx
movzx edx, byte [edx]
cmp dl, 0x47
jne 0x421d40
cmp ecx, eax
jb 0x4222e0
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x421d40
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
je 0x4226a8
lea edx, [ebp + 0x29]
add eax, edi
movzx ecx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], edx
jmp 0x4222ec
lea edx, [ecx + 1]
mov dword [ebp + 0xac], edx
movzx ecx, byte [ecx]
cmp cl, 0xd
jne 0x421d40
cmp edx, eax
jb 0x422350
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x421d40
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
je 0x4226a8
lea ecx, [ebp + 0x29]
add eax, edi
movzx edx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], ecx
jmp 0x42235c
lea ecx, [edx + 1]
mov dword [ebp + 0xac], ecx
movzx edx, byte [edx]
cmp dl, 0xa
jne 0x421d40
cmp ecx, eax
jb 0x4223c0
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x421d40
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
je 0x4226a8
lea edx, [ebp + 0x29]
add eax, edi
movzx ecx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], edx
jmp 0x4223cc
lea edx, [ecx + 1]
mov dword [ebp + 0xac], edx
movzx ecx, byte [ecx]
cmp cl, 0x1a
jne 0x421d40
cmp edx, eax
jae 0x4224d0
lea eax, [edx + 1]
mov dword [ebp + 0xac], eax
movzx eax, byte [edx]
cmp al, 0xa
jne 0x421d40
mov eax, dword [ebp + 0xb8]
mov edx, dword [ebp + 0xb4]
mov dword [esp + 0x90], ebp
cmp dword [esp + 0x24], 4
mov dword [ebp + 0xac], edx
mov dword [ebp + 0xb0], eax
ja 0x422520
mov ecx, dword [esp + 0x24]
xor edx, edx
lea eax, [esp + 0x90]
call sym.stbi__parse_png_file_stbi__png__int__int_
test eax, eax
je 0x4225d0
mov edx, dword [esp + 0xa0]
cmp edx, 8
jle 0x4226c0
cmp edx, 0x10
jne 0x42275f
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x24]
mov dword [esi], edx
mov dword [esp + 0x9c], 0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x90]
test edi, edi
je 0x422638
mov ebx, dword [eax + 0xc]
mov ecx, dword [eax]
cmp edi, ebx
je 0x422638
mov eax, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
cmp edx, 8
je 0x422f3b
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov edx, ebx
call sym.stbi__convert_format16_unsigned_short__int__int__unsigned_int__unsigned_int___clone_.part.0_
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x34]
mov dword [eax + 0xc], edi
test ebx, ebx
je 0x422532
mov edx, dword [esp + 0x9c]
jmp 0x42263a
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x421d40
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
test edx, edx
je 0x4226a8
add edi, edx
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edi
jmp 0x4223e9
mov dword [esp], 0x4e9010
call sym.___emutls_get_address
mov dword [eax], str.Internal_error
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x34]
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
je 0x4226a8
lea edx, [ebp + 0x29]
add eax, edi
movzx ecx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], edx
jmp 0x42212c
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x130], eax
add esp, 0x11c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
jmp sym.stbi__gif_load_stbi__context__int__int__int__int__stbi__result_info___clone_.isra.0_
mov dword [esp + 0x34], 0
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
call sym._free
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x94]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x34]
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ebp + 0x20]
test edi, edi
jne 0x422923
mov dword [ebp + 0xac], eax
mov edx, dword [ebp + 0xb8]
jmp 0x421e0e
xor edx, edx
mov ecx, dword [eax]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov dword [edi], ecx
mov edi, dword [esp + 0x30]
mov ecx, dword [eax + 4]
mov dword [edi], ecx
test esi, esi
je 0x4225df
mov eax, dword [eax + 8]
mov dword [esi], eax
jmp 0x4225df
mov eax, dword [ebp + 0xb8]
mov edx, dword [ebp + 0xb4]
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0xb0], eax
mov eax, dword [esp + 0x24]
mov dword [ebp + 0xac], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x130], eax
add esp, 0x11c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
jmp sym.stbi__bmp_load_stbi__context__int__int__int__int__stbi__result_info___clone_.isra.0_
mov dword [ebp + 0x20], 0
mov byte [ebp + 0x28], 0
jmp 0x421d40
mov edx, 8
jmp 0x42244e
lea ecx, [ebp + 0x29]
add edx, edi
movzx edi, byte [ebp + 0x28]
mov dword [esp + 0x34], ecx
mov dword [ebp + 0xb0], edx
mov dword [ebp + 0xac], ecx
jmp 0x421d86
lea eax, [edx + 1]
mov dword [ebp + 0xac], eax
movzx eax, byte [edx]
cmp al, 0x53
jne 0x422711
mov eax, dword [ebp + 0xac]
cmp eax, dword [ebp + 0xb0]
jb 0x422776
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x42327d
mov edx, dword [ebp + 0xb4]
mov eax, dword [ebp + 0xb8]
jmp 0x421e88
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x138], esi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x130], eax
add esp, 0x11c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
jmp sym.stbi__psd_load_stbi__context__int__int__int__int__stbi__result_info__int_
mov dword [esp], 0x4e9010
call sym.___emutls_get_address
mov dword [eax], str.PNG_not_supported:_unsupported_color_depth
jmp 0x422532
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx eax, byte [eax]
cmp al, 0x80
jne 0x422711
mov eax, dword [ebp + 0xac]
cmp eax, dword [ebp + 0xb0]
jb 0x4228ba
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x422711
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
test edx, edx
je 0x422d79
add edx, ebx
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edx
lea edx, [ebp + 0x29]
mov dword [ebp + 0xac], edx
cmp al, 0xf6
jne 0x422711
mov eax, dword [ebp + 0xac]
cmp eax, dword [ebp + 0xb0]
jae 0x4228cb
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx eax, byte [eax]
cmp al, 0x34
jne 0x422711
mov eax, dword [ebp + 0xac]
mov edx, dword [ebp + 0xb0]
mov ebx, 0x54
lea edi, [ebp + 0x28]
jmp 0x42283e
add eax, 1
mov dword [ebp + 0xac], eax
sub ebx, 1
je 0x422896
cmp eax, edx
jb 0x422830
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x422839
mov eax, dword [ebp + 0x24]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov ecx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
lea edx, [edi + ecx]
add dword [ebp + 0xa8], eax
lea eax, [ebp + 0x29]
test ecx, ecx
jne 0x422888
mov dword [ebp + 0x20], 0
mov edx, eax
mov byte [ebp + 0x28], 0
mov dword [ebp + 0xb0], edx
mov dword [ebp + 0xac], eax
jmp 0x422839
cmp eax, edx
jb 0x422968
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x423355
mov eax, dword [ebp + 0xb8]
mov edx, dword [ebp + 0xb4]
jmp 0x421e88
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx eax, byte [eax]
jmp 0x4227eb
mov ebx, dword [ebp + 0x20]
test ebx, ebx
je 0x422711
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
test edx, edx
je 0x422d79
add edx, ebx
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edx
lea edx, [ebp + 0x29]
mov dword [ebp + 0xac], edx
jmp 0x422811
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
mov ecx, eax
mov eax, dword [ebp + 0xb4]
sub edx, eax
add dword [ebp + 0xa8], edx
test ecx, ecx
jne 0x423216
mov dword [ebp + 0x20], 0
mov byte [ebp + 0x28], 0
jmp 0x422623
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx eax, byte [eax]
cmp al, 0x50
jne 0x4228a9
mov eax, dword [ebp + 0xac]
cmp eax, dword [ebp + 0xb0]
jb 0x422d68
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4228a9
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
test edx, edx
je 0x422f2b
add edx, ebx
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edx
lea edx, [ebp + 0x29]
mov dword [ebp + 0xac], edx
cmp al, 0x49
jne 0x4228a9
mov eax, dword [ebp + 0xac]
cmp eax, dword [ebp + 0xb0]
jb 0x422db0
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x4228a9
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
test edx, edx
je 0x422f2b
add edx, ebx
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edx
lea edx, [ebp + 0x29]
mov dword [ebp + 0xac], edx
cmp al, 0x43
jne 0x4228a9
mov eax, dword [ebp + 0xac]
cmp eax, dword [ebp + 0xb0]
jae 0x422dc1
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx eax, byte [eax]
cmp al, 0x54
jne 0x4228a9
mov esi, dword [esp + 0x28]
lea ecx, [esp + 0x7c]
mov ebx, 0x5c
mov edx, dword [ebp + 0xb8]
mov eax, dword [ebp + 0xb4]
test esi, esi
mov dword [ebp + 0xb0], edx
cmovne ecx, esi
mov dword [ebp + 0xac], eax
lea esi, [ebp + 0x28]
mov dword [esp + 0x28], ecx
jmp 0x422abe
add eax, 1
mov dword [ebp + 0xac], eax
sub ebx, 1
je 0x422b16
cmp eax, edx
jb 0x422ab0
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x422ab9
mov eax, dword [ebp + 0x24]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov ecx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
lea edx, [esi + ecx]
add dword [ebp + 0xa8], eax
lea eax, [ebp + 0x29]
test ecx, ecx
jne 0x422b08
mov dword [ebp + 0x20], 0
mov edx, eax
mov byte [ebp + 0x28], 0
mov dword [ebp + 0xb0], edx
mov dword [ebp + 0xac], eax
jmp 0x422ab9
mov eax, ebp
call sym.stbi__get16be_stbi__context_
mov esi, eax
mov eax, ebp
call sym.stbi__get16be_stbi__context_
mov ecx, eax
cmp eax, 0x1000000
jg 0x422e10
cmp esi, 0x1000000
jg 0x422e10
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x422b66
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x34], ecx
mov dword [esp], eax
call dword [ebp + 0x18]
mov ecx, dword [esp + 0x34]
test eax, eax
je 0x422b78
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4233f1
mov eax, dword [ebp + 0xb0]
cmp dword [ebp + 0xac], eax
jae 0x4233f1
mov eax, esi
or eax, ecx
js 0x42334b
test ecx, ecx
je 0x4234a2
mov eax, 0x7fffffff
xor edx, edx
idiv ecx
cmp esi, eax
jg 0x42334b
mov ebx, esi
mov dword [esp + 0x34], ecx
imul ebx, ecx
cmp ebx, 0x1fffffff
jg 0x42334b
mov eax, ebp
call sym.stbi__get32be_stbi__context_
mov eax, ebp
call sym.stbi__get16be_stbi__context_
mov eax, ebp
call sym.stbi__get16be_stbi__context_
mov ecx, dword [esp + 0x34]
shl ebx, 2
mov dword [esp + 0x40], ecx
mov dword [esp], ebx
call sym._malloc
mov dword [esp + 0x34], eax
test eax, eax
je 0x4245f1
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xff
mov dword [esp], eax
call sym._memset
lea eax, [esp + 0x91]
mov dword [esp + 0x38], esi
mov dword [esp + 0x50], 0
mov esi, eax
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x44]
mov edx, dword [ebp + 0xac]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x54], eax
add eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0xb0]
mov edi, eax
cmp edx, eax
jae 0x4233d3
lea ebx, [edx + 1]
mov dword [ebp + 0xac], ebx
movzx edx, byte [edx]
mov byte [esp + 0x4c], dl
cmp ebx, eax
jae 0x423513
lea edi, [ebx + 1]
mov dword [ebp + 0xac], edi
movzx ebx, byte [ebx]
mov byte [esp + 0x48], bl
cmp edi, eax
jae 0x423570
lea edx, [edi + 1]
mov dword [ebp + 0xac], edx
movzx edi, byte [edi]
mov ebx, edi
mov byte [esi], bl
cmp edx, eax
jae 0x4233a2
lea ecx, [edx + 1]
mov dword [ebp + 0xac], ecx
movzx edi, byte [edx]
or dword [esp + 0x50], edi
mov edx, edi
mov byte [esi + 1], dl
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x422cc5
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x18]
test eax, eax
je 0x422ccd
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4233bc
mov ecx, dword [ebp + 0xac]
mov eax, dword [ebp + 0xb0]
cmp ecx, eax
jae 0x4233bc
cmp byte [esp + 0x48], 8
jne 0x42552f
add esi, 3
cmp byte [esp + 0x4c], 0
je 0x42454d
cmp dword [esp + 0x44], 0xa
jne 0x422c15
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [eax], str.too_many_packets
mov eax, dword [esp + 0x34]
xor edi, edi
mov dword [esp + 0x38], ecx
mov dword [esp], eax
call sym._free
mov dword [esp + 0x34], edi
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [eax], esi
mov eax, dword [esp + 0x30]
mov dword [eax], ecx
test ebx, ebx
jne 0x422d3b
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
cmp eax, 4
je 0x42253a
mov dword [esp + 4], ecx
mov ecx, eax
mov eax, dword [esp + 0x34]
mov edx, 4
mov dword [esp], esi
call sym.stbi__convert_format_unsigned_char__int__int__unsigned_int__unsigned_int___clone_.part.0_
mov dword [esp + 0x34], eax
jmp 0x42253a
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx eax, byte [eax]
jmp 0x4229e1
mov dword [ebp + 0x20], 0
mov byte [ebp + 0x28], 0
jmp 0x422711
mov eax, sym.stbi__resample_row_h_2_unsigned_char__unsigned_char__unsigned_char__int__int_
cmp esi, 1
je 0x42200e
mov eax, sym.stbi__resample_row_generic_unsigned_char__unsigned_char__unsigned_char__int__int_
cmp esi, 2
jne 0x42200e
mov eax, dword [ebp + 0x4814]
jmp 0x42200e
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx eax, byte [eax]
jmp 0x422a4e
mov ebx, dword [ebp + 0x20]
test ebx, ebx
je 0x4228a9
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
test edx, edx
je 0x422f2b
add edx, ebx
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edx
jmp 0x422a74
mov eax, str.Very_large_image__corrupt__
mov edi, dword [esp + 0x3c]
mov dword [edi], eax
jmp 0x422532
mov eax, dword [esp + 0x3c]
mov dword [eax], str.Out_of_memory
mov eax, dword [ebp + 0xac]
mov ecx, dword [ebp + 0xb0]
cmp eax, ecx
jae 0x422f51
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx ebx, byte [eax]
cmp edx, ecx
jae 0x422fa9
lea eax, [edx + 1]
mov dword [ebp + 0xac], eax
movzx ecx, byte [edx]
cmp bl, 0x50
jne 0x422ffd
sub ecx, 0x35
cmp cl, 1
ja 0x422ffd
lea eax, [ebp + 8]
lea ecx, [ebp + 4]
mov edx, ebp
mov dword [esp], eax
mov eax, ebp
call sym.stbi__pnm_info_stbi__context__int__int__int_
mov dword [esi], eax
test eax, eax
je 0x422532
cmp dword [ebp + 4], 0x1000000
ja 0x423493
mov eax, dword [ebp]
cmp eax, 0x1000000
ja 0x423493
mov edi, dword [esp + 0x2c]
mov dword [edi], eax
mov edi, dword [esp + 0x30]
mov eax, dword [ebp + 4]
mov dword [edi], eax
mov edi, dword [esp + 0x28]
test edi, edi
je 0x422ec6
mov eax, dword [ebp + 8]
mov dword [edi], eax
mov eax, dword [esi]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 4]
mov edi, dword [ebp]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
test ecx, ecx
js 0x422f1c
test edi, edi
js 0x422f1c
je 0x424007
mov eax, 0x7fffffff
xor edx, edx
idiv edi
cmp ecx, eax
jg 0x422f1c
test ebx, ebx
js 0x422f1c
mov ecx, dword [esp + 0x28]
imul ecx, edi
mov dword [esp + 0x30], ecx
test ebx, ebx
je 0x424015
mov eax, 0x7fffffff
xor edx, edx
idiv ebx
cmp ecx, eax
jle 0x424015
mov eax, dword [esp + 0x3c]
mov dword [eax], str.PNM_too_large
jmp 0x422532
mov dword [ebp + 0x20], 0
mov byte [ebp + 0x28], 0
jmp 0x4228a9
mov eax, dword [esp + 0x34]
mov ecx, edi
mov edx, ebx
call sym.stbi__convert_format_unsigned_char__int__int__unsigned_int__unsigned_int___clone_.part.0_
mov dword [esp + 0x34], eax
jmp 0x4224ac
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x422ffd
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
lea edx, [ebp + 0x29]
test eax, eax
jne 0x423679
mov dword [ebp + 0x20], 0
xor ebx, ebx
mov byte [ebp + 0x28], 0
mov dword [ebp + 0xb0], edx
mov dword [ebp + 0xac], edx
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x422ffd
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
lea eax, [ebp + 0x29]
test edx, edx
jne 0x423d64
mov dword [ebp + 0x20], 0
mov byte [ebp + 0x28], 0
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], eax
mov eax, dword [ebp + 0xb8]
mov edx, dword [ebp + 0xb4]
mov dword [ebp + 0xb0], eax
mov eax, ebp
mov dword [ebp + 0xac], edx
call sym.stbi__hdr_test_stbi__context_
mov dword [esp + 0x64], eax
test eax, eax
je 0x4233fb
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov eax, ebp
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], edi
mov dword [esp], esi
call sym.stbi__hdr_load_stbi__context__int__int__int__int__stbi__result_info___clone_.isra.0_
mov ebp, eax
test edi, edi
jne 0x423052
mov eax, dword [esi]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax]
test ebp, ebp
je 0x422532
mov dword [esp], 0
mov ecx, dword [esp + 0x24]
mov edx, esi
mov eax, ebx
call sym.stbi__malloc_mad3_int__int__int__int_
mov dword [esp + 0x34], eax
test eax, eax
je 0x4245fb
mov edi, dword [esp + 0x24]
mov eax, edi
and eax, 1
cmp eax, 1
mov eax, edi
sbb eax, 0
imul esi, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], esi
test esi, esi
jle 0x423209
shl edi, 2
lea ebx, [ebp + eax*4]
test eax, eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x44], edi
mov edi, eax
mov eax, 0
mov ebp, dword [esp + 0x38]
cmovns eax, edi
xor ecx, ecx
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x48]
test edx, edx
jle 0x423182
fld dword [0x4e90b8]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
lea esi, [eax + ecx*4]
mov eax, dword [esp + 0x34]
fstp dword [esp + 0x28]
fld dword [0x4e90b4]
lea edi, [eax + ecx]
fstp dword [esp + 0x2c]
lea esi, [esi]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fld dword [esp + 0x2c]
fmul dword [esi]
fstp dword [esp]
call sym._powf
fld dword [0x4eceb8]
xor edx, edx
fmul st(1), st(0)
fxch st(1)
fadd dword [0x4ece70]
fldz
fcompi st(1)
ja 0x423168
fcomi st(1)
fstp st(1)
mov edx, 0xffffffff
ja 0x423170
fnstcw word [esp + 0x6e]
movzx edx, word [esp + 0x6e]
or dh, 0xc
mov word [esp + 0x6c], dx
fldcw word [esp + 0x6c]
fistp dword [esp + 0x30]
fldcw word [esp + 0x6e]
mov edx, dword [esp + 0x30]
jmp 0x423172
fstp st(0)
fstp st(0)
jmp 0x423172
fstp st(0)
add esi, 4
mov byte [edi], dl
add edi, 1
cmp ebx, esi
jne 0x423108
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x24], eax
jle 0x4231ea
mov edi, dword [esp + 0x3c]
add eax, ecx
fld dword [0x4eceb8]
xor edx, edx
fld dword [edi + eax*4]
fmul st(1)
fadd dword [0x4ece70]
fldz
fcompi st(1)
ja 0x4231db
fcomi st(1)
fstp st(1)
mov edx, 0xffffffff
ja 0x4231e1
fnstcw word [esp + 0x6e]
movzx esi, word [esp + 0x6e]
or si, 0xc00
mov word [esp + 0x6c], si
fldcw word [esp + 0x6c]
fistp dword [esp + 0x28]
fldcw word [esp + 0x6e]
mov edx, dword [esp + 0x28]
jmp 0x4231e3
fstp st(0)
fstp st(0)
jmp 0x4231e3
fstp st(0)
mov edi, dword [esp + 0x34]
mov byte [edi + eax], dl
mov eax, dword [esp + 0x24]
add ebp, 1
add ecx, eax
mov eax, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x4c]
cmp ebp, eax
jne 0x4230cf
mov ebp, dword [esp + 0x3c]
mov dword [esp], ebp
call sym._free
jmp 0x42253a
add edi, ecx
lea ecx, [ebp + 0x29]
movzx edx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edi
mov dword [ebp + 0xac], ecx
jmp 0x421da9
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
test edx, edx
je 0x422d79
add ebx, edx
lea edx, [ebp + 0x29]
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xb0], ebx
mov dword [ebp + 0xac], edx
jmp 0x4226f4
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
test edx, edx
je 0x422d79
add ebx, edx
lea edx, [ebp + 0x29]
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xb0], ebx
mov dword [ebp + 0xac], edx
jmp 0x422782
mov eax, dword [esp + 0x3c]
mov dword [eax], str.Internal_error
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call sym._free
jmp 0x42253a
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov ebx, dword [ebp + 4]
test esi, esi
js 0x423333
je 0x423691
mov eax, 0x7fffffff
xor edx, edx
mov edi, dword [esp + 0x24]
idiv esi
cmp eax, edi
jl 0x423333
test ebx, ebx
js 0x423333
je 0x4239b8
mov eax, 0x7fffffff
imul edi, esi
xor edx, edx
idiv ebx
mov ecx, edi
cmp edi, eax
jle 0x425546
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x54]
call sym.stbi__free_jpeg_components_stbi__jpeg__int__int___clone_.constprop.0_
mov eax, dword [esp + 0x3c]
mov dword [eax], str.Out_of_memory
jmp 0x4232d4
mov eax, str.PIC_image_too_large_to_decode
jmp 0x422e15
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
test edx, edx
je 0x422f2b
add edx, ebx
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edx
lea edx, [ebp + 0x29]
mov dword [ebp + 0xac], edx
jmp 0x422974
mov ebx, dword [ebp + 0x20]
test ebx, ebx
jne 0x4235d1
mov eax, dword [ebp + 0x10]
mov byte [esi + 1], 0
test eax, eax
jne 0x422ca1
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [eax], str.file_too_short__reading_packets_
jmp 0x422d03
mov eax, dword [ebp + 0x20]
mov byte [esp + 0x4c], 0
test eax, eax
jne 0x4234c6
mov byte [esp + 0x48], 0
mov eax, edi
xor edi, edi
jmp 0x422c79
mov eax, str.file_too_short__pic_header_
jmp 0x422e15
mov eax, ebp
call sym.stbi__get8_stbi__context_
mov eax, ebp
call sym.stbi__get8_stbi__context_
movzx ebx, al
mov esi, eax
cmp ebx, 1
jle 0x423d7b
mov eax, dword [ebp + 0xb4]
mov dword [ebp + 0xac], eax
mov eax, dword [ebp + 0xb8]
mov dword [ebp + 0xb0], eax
mov eax, dword [esp + 0x3c]
mov dword [eax], str.Image_not_of_any_known_type__or_corrupt
jmp 0x422532
cmp dword [esp + 0x40], 3
jne 0x421f9f
mov eax, dword [esp + 0x54]
mov byte [esp + 0x64], 1
cmp dword [eax + 0x47ec], 3
je 0x421fb0
mov edx, dword [eax + 0x47e8]
test edx, edx
jne 0x423476
cmp dword [eax + 0x47e4], 0
je 0x421fb0
cmp dword [esp + 0x24], 2
mov eax, 1
cmovg eax, dword [esp + 0x40]
mov byte [esp + 0x64], 0
mov dword [esp + 0x40], eax
jmp 0x421fb0
mov eax, dword [esp + 0x3c]
mov dword [eax], str.Very_large_image__corrupt__
jmp 0x422532
mov eax, ebp
mov dword [esp + 0x34], ecx
xor ebx, ebx
call sym.stbi__get32be_stbi__context_
mov eax, ebp
call sym.stbi__get16be_stbi__context_
mov eax, ebp
call sym.stbi__get16be_stbi__context_
mov ecx, dword [esp + 0x34]
jmp 0x422bc9
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
lea ebx, [ebp + 0x29]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call ecx
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
jne 0x423fe9
mov dword [ebp + 0x20], 0
mov ecx, dword [ebp + 0x10]
mov byte [ebp + 0x28], 0
mov dword [ebp + 0xb0], ebx
mov dword [ebp + 0xac], ebx
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x42448f
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
lea edi, [ebp + 0x29]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call ecx
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
jne 0x423fcb
mov dword [ebp + 0x20], 0
mov ecx, dword [ebp + 0x10]
mov byte [ebp + 0x28], 0
mov dword [ebp + 0xb0], edi
mov dword [ebp + 0xac], edi
mov byte [esp + 0x48], 0
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x4244a0
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call ecx
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
lea edx, [ebp + 0x29]
test eax, eax
jne 0x423fc0
mov dword [ebp + 0x20], 0
mov eax, edx
xor edi, edi
mov byte [ebp + 0x28], 0
mov dword [ebp + 0xb0], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 0xac], edx
jmp 0x422c79
mov eax, dword [ebp + 0x24]
lea edi, [ebp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call ecx
mov edx, dword [ebp + 0xac]
lea ecx, [ebp + 0x29]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
jne 0x42437d
mov dword [ebp + 0x20], 0
mov eax, ecx
xor edx, edx
mov byte [ebp + 0x28], 0
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], ecx
jmp 0x422c97
cmp dword [esp + 0x40], 3
mov dword [esp + 0x24], 3
jne 0x421fab
mov eax, dword [esp + 0x54]
mov byte [esp + 0x64], 1
mov edi, dword [eax + 0x47ec]
mov dword [esp + 0x24], edi
cmp edi, 3
je 0x421fb0
cmp dword [eax + 0x47e8], 0
jne 0x4244b1
cmp dword [eax + 0x47e4], 0
mov dword [esp + 0x24], 3
sete byte [esp + 0x64]
jmp 0x421fb0
lea ecx, [ebx + eax]
mov dword [ebp + 0xac], edx
movzx ebx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], ecx
jmp 0x422e4a
test ebx, ebx
js 0x423333
je 0x4239b8
mov eax, dword [esp + 0x24]
imul eax, esi
imul eax, ebx
add eax, 1
mov dword [esp], eax
call sym._malloc
mov dword [esp + 0x34], eax
test eax, eax
je 0x423333
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
lea eax, [esp + eax*4 + 0x80]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x54]
add eax, 0x46bc
mov dword [esp + 0x68], eax
mov eax, esi
nop
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x34]
lea ebp, [esp + 0x90]
imul eax, edi
lea edi, [esi + eax]
mov esi, dword [esp + 0x68]
lea eax, [esp + 0x80]
mov dword [esp + 0x60], edi
mov edi, esi
mov esi, eax
mov eax, dword [ebp]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], edx
sar edx, 1
mov dword [esp + 0x48], edx
mov edx, ecx
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 4]
cmp ebx, ecx
jl 0x423757
mov edx, eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], edx
add ebx, 1
mov dword [esp + 4], eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xc], ecx
mov eax, dword [edi + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call eax
mov dword [esi], eax
cmp dword [esp + 0x38], ebx
jle 0x423858
mov dword [ebp + 0x18], ebx
add ebp, 0x20
add edi, 0x48
add esi, 4
cmp dword [esp + 0x50], esi
jne 0x423718
mov eax, dword [esp + 0x54]
cmp dword [esp + 0x24], 2
mov edi, dword [esp + 0x60]
mov ebp, dword [eax]
mov edx, dword [ebp]
jle 0x423884
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x80]
cmp eax, 3
je 0x423937
cmp eax, 4
jne 0x42397c
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x47e8]
test eax, eax
je 0x423b61
mov esi, dword [esp + 0x54]
mov ebp, dword [esp + 0x84]
cmp eax, 2
mov eax, dword [esp + 0x24]
mov ebx, dword [esi + 0x4810]
mov esi, dword [esp + 0x88]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebp
mov dword [esp + 4], ecx
mov dword [esp], edi
je 0x423c39
call ebx
mov eax, dword [esp + 0x54]
mov ebp, dword [eax]
lea esi, [esi]
add dword [esp + 0x58], 1
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x58]
add dword [esp + 0x5c], edi
cmp eax, dword [ebp + 4]
jae 0x4239d0
mov eax, dword [ebp]
jmp 0x4236f0
mov eax, dword [ebp + 0x1c]
mov ebx, dword [esp + 0x4c]
mov dword [ebp + 0x18], 0
add eax, 1
mov dword [ebp + 4], ebx
mov dword [ebp + 0x1c], eax
cmp eax, dword [edi]
jge 0x42378d
mov eax, dword [edi + 4]
add eax, ebx
mov dword [ebp + 8], eax
jmp 0x42378d
cmp byte [esp + 0x64], 0
je 0x4238ed
cmp dword [esp + 0x24], 1
je 0x423af0
test edx, edx
je 0x423830
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x80]
mov dword [esp + 0x38], eax
xor eax, eax
lea esi, [esi]
movzx edx, byte [ebx + eax]
movzx ecx, byte [esi + eax]
imul edx, edx, 0x4d
imul ecx, ecx, 0x96
add edx, ecx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx + eax]
mov byte [edi + eax*2 + 1], 0xff
imul ecx, ecx, 0x1d
add edx, ecx
mov byte [edi + eax*2], dh
add eax, 1
cmp eax, dword [ebp]
jb 0x4238b8
jmp 0x423830
cmp dword [ebp + 8], 4
je 0x423a8e
cmp dword [esp + 0x24], 1
mov ecx, dword [esp + 0x80]
je 0x423b43
xor eax, eax
test edx, edx
je 0x423830
lea esi, [esi]
nop
movzx edx, byte [ecx + eax]
mov byte [edi + eax*2 + 1], 0xff
mov byte [edi + eax*2], dl
add eax, 1
cmp eax, dword [ebp]
jb 0x423918
mov eax, dword [esp + 0x54]
mov ebp, dword [eax]
jmp 0x423830
cmp byte [esp + 0x64], 0
jne 0x423bee
mov eax, dword [esp + 0x24]
mov dword [esp], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 4], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
call dword [edi + 0x4810]
mov ebp, dword [edi]
jmp 0x423830
mov esi, dword [esp + 0x24]
xor eax, eax
test edx, edx
je 0x423830
lea esi, [esi]
movzx ebx, byte [ecx + eax]
movzx edx, word [0x4ece60]
mov byte [edi + 3], 0xff
add eax, 1
mov dl, bl
mov byte [edi + 2], bl
mov dh, bl
mov word [edi], dx
add edi, esi
cmp eax, dword [ebp]
jb 0x423990
jmp 0x42392c
mov dword [esp], 1
call sym._malloc
mov dword [esp + 0x34], eax
test eax, eax
je 0x423333
mov eax, dword [ebp + 8]
test eax, eax
jle 0x423a5c
mov edi, dword [esp + 0x54]
lea eax, [eax + eax*8]
mov esi, edi
lea ebx, [edi + eax*8]
mov eax, dword [esi + 0x46cc]
test eax, eax
je 0x423a0d
mov dword [esp], eax
call sym._free
mov dword [esi + 0x46cc], 0
mov dword [esi + 0x46c8], 0
mov eax, dword [esi + 0x46d0]
test eax, eax
je 0x423a33
mov dword [esp], eax
call sym._free
mov dword [esi + 0x46d0], 0
mov dword [esi + 0x46d8], 0
mov eax, dword [esi + 0x46d4]
test eax, eax
je 0x423a4f
mov dword [esp], eax
call sym._free
mov dword [esi + 0x46d4], 0
add esi, 0x48
cmp ebx, esi
jne 0x4239e7
mov eax, dword [esp + 0x54]
mov ebp, dword [eax]
mov eax, dword [ebp]
mov edi, dword [esp + 0x2c]
mov dword [edi], eax
mov edi, dword [esp + 0x30]
mov eax, dword [ebp + 4]
mov dword [edi], eax
mov edi, dword [esp + 0x28]
test edi, edi
je 0x4232dc
xor eax, eax
cmp dword [ebp + 8], 3
setge al
lea eax, [eax + eax + 1]
mov dword [edi], eax
jmp 0x4232dc
mov eax, dword [eax + 0x47e8]
test eax, eax
je 0x423cb5
cmp eax, 2
jne 0x4238f7
test edx, edx
je 0x423830
mov esi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x80]
xor edx, edx
movzx eax, byte [ebx + edx]
movzx ecx, byte [esi + edx]
mov byte [edi + 1], 0xff
add edx, 1
not eax
movzx eax, al
imul eax, ecx
sub eax, 0xffffff80
mov ecx, eax
shr ecx, 8
add eax, ecx
mov byte [edi], ah
mov eax, dword [esp + 0x24]
add edi, eax
cmp edx, dword [ebp]
jb 0x423abd
jmp 0x42392c
test edx, edx
je 0x423830
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x88]
xor edx, edx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
movzx ecx, byte [ebx + edx]
movzx eax, byte [eax + edx]
imul ecx, ecx, 0x96
imul eax, eax, 0x4d
add eax, ecx
movzx ecx, byte [esi + edx]
imul ecx, ecx, 0x1d
add eax, ecx
mov byte [edi + edx], ah
add edx, 1
cmp edx, dword [ebp]
jb 0x423b13
jmp 0x423830
test edx, edx
je 0x423830
xor eax, eax
movzx edx, byte [ecx + eax]
mov byte [edi + eax], dl
add eax, 1
cmp eax, dword [ebp]
jb 0x423b4d
jmp 0x42392c
test edx, edx
je 0x423830
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x40], eax
xor eax, eax
mov esi, dword [esp + 0x38]
movzx edx, byte [ecx + eax]
movzx ebx, byte [esi + eax]
imul edx, ebx
sub edx, 0xffffff80
mov esi, edx
shr esi, 8
add edx, esi
mov esi, dword [esp + 0x3c]
mov byte [edi], dh
movzx edx, byte [esi + eax]
imul edx, ebx
sub edx, 0xffffff80
mov esi, edx
shr esi, 8
add edx, esi
mov esi, dword [esp + 0x40]
mov byte [edi + 1], dh
movzx edx, byte [esi + eax]
mov esi, dword [esp + 0x24]
mov byte [edi + 3], 0xff
add eax, 1
imul edx, ebx
sub edx, 0xffffff80
mov ebx, edx
shr ebx, 8
add ebx, edx
mov byte [edi + 2], bh
add edi, esi
cmp eax, dword [ebp]
jb 0x423b8c
jmp 0x42392c
test edx, edx
je 0x423830
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
xor eax, eax
mov esi, dword [esp + 0x24]
mov dword [esp + 0x38], edx
movzx edx, byte [ecx + eax]
mov byte [edi], dl
movzx edx, byte [ebx + eax]
mov byte [edi + 1], dl
mov edx, dword [esp + 0x38]
movzx edx, byte [edx + eax]
mov byte [edi + 3], 0xff
add eax, 1
mov byte [edi + 2], dl
add edi, esi
cmp eax, dword [ebp]
jb 0x423c0e
jmp 0x42392c
call ebx
mov eax, dword [esp + 0x54]
mov ebp, dword [eax]
mov eax, dword [ebp]
test eax, eax
je 0x423830
mov esi, dword [esp + 0x8c]
xor ebx, ebx
movzx eax, byte [edi]
movzx edx, byte [esi + ebx]
add ebx, 1
not eax
movzx eax, al
imul eax, edx
sub eax, 0xffffff80
mov ecx, eax
shr ecx, 8
add ecx, eax
movzx eax, byte [edi + 1]
mov byte [edi], ch
not eax
movzx eax, al
imul eax, edx
sub eax, 0xffffff80
mov ecx, eax
shr ecx, 8
add ecx, eax
movzx eax, byte [edi + 2]
mov byte [edi + 1], ch
not eax
movzx eax, al
imul eax, edx
sub eax, 0xffffff80
mov edx, eax
shr edx, 8
add eax, edx
mov byte [edi + 2], ah
mov eax, dword [esp + 0x24]
add edi, eax
cmp ebx, dword [ebp]
jb 0x423c55
jmp 0x423830
test edx, edx
je 0x423830
mov eax, dword [esp + 0x8c]
xor ecx, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x44]
movzx eax, byte [eax + ecx]
movzx edx, byte [esi + ecx]
mov esi, dword [esp + 0x40]
movzx ebx, byte [ebx + ecx]
imul edx, eax
movzx esi, byte [esi + ecx]
imul ebx, eax
mov byte [edi + 1], 0xff
add ecx, 1
imul esi, eax
sub edx, 0xffffff80
mov eax, edx
sub ebx, 0xffffff80
shr eax, 8
sub esi, 0xffffff80
add edx, eax
mov eax, esi
shr edx, 8
shr eax, 8
imul edx, edx, 0x4d
add eax, esi
shr eax, 8
imul eax, eax, 0x96
add eax, edx
mov edx, ebx
shr edx, 8
add edx, ebx
shr edx, 8
imul edx, edx, 0x1d
add eax, edx
mov byte [edi], ah
mov eax, dword [esp + 0x24]
add edi, eax
cmp ecx, dword [ebp]
jb 0x423ceb
jmp 0x42392c
add edi, edx
mov dword [ebp + 0xac], eax
movzx ecx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edi
jmp 0x422e5e
mov eax, ebp
call sym.stbi__get8_stbi__context_
cmp ebx, 1
je 0x42441b
and eax, 0xfffffff6
cmp al, 2
jne 0x423417
mov edx, 9
mov eax, ebp
call sym.stbi__skip_stbi__context__int___clone_.part.0_
mov eax, ebp
call sym.stbi__get16le_stbi__context_
test eax, eax
jle 0x423417
mov eax, ebp
call sym.stbi__get16le_stbi__context_
test eax, eax
jle 0x423417
mov eax, ebp
and esi, 1
call sym.stbi__get8_stbi__context_
mov ebx, eax
lea ecx, [ebx - 8]
test cl, 0xf7
setne dl
cmp cl, 0x18
ja 0x4254fe
mov eax, 0xfeffff7e
sar eax, cl
and eax, 1
mov ecx, eax
test dl, dl
je 0x423df8
mov eax, esi
test al, al
jne 0x423417
mov edx, dword [ebp + 0xb4]
mov eax, dword [ebp + 0xb8]
test ecx, ecx
jne 0x425518
mov dword [ebp + 0xac], edx
mov dword [ebp + 0xb0], eax
cmp edx, eax
jae 0x424136
lea ecx, [edx + 1]
mov dword [ebp + 0xac], ecx
movzx ebx, byte [edx]
mov byte [esp + 0x5c], bl
cmp ecx, eax
jae 0x42418b
lea edx, [ecx + 1]
mov dword [ebp + 0xac], edx
movzx ecx, byte [ecx]
movzx edi, cl
mov dword [esp + 0x48], edi
cmp edx, eax
jae 0x4241eb
lea eax, [edx + 1]
mov dword [ebp + 0xac], eax
movzx esi, byte [edx]
mov eax, ebp
call sym.stbi__get16le_stbi__context_
mov dword [esp + 0x60], eax
mov eax, ebp
call sym.stbi__get16le_stbi__context_
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0xac]
cmp eax, dword [ebp + 0xb0]
jae 0x42431e
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx ebx, byte [eax]
mov eax, ebp
call sym.stbi__get16le_stbi__context_
mov eax, ebp
call sym.stbi__get16le_stbi__context_
mov eax, ebp
call sym.stbi__get16le_stbi__context_
mov dword [esp + 0x44], eax
mov eax, ebp
call sym.stbi__get16le_stbi__context_
mov ecx, dword [ebp + 0xac]
mov edx, dword [ebp + 0xb0]
mov dword [esp + 0x40], eax
cmp ecx, edx
jae 0x424247
lea eax, [ecx + 1]
mov dword [ebp + 0xac], eax
movzx edi, byte [ecx]
mov ecx, edi
movzx ecx, cl
mov dword [esp + 0x54], ecx
cmp eax, edx
jae 0x4242b6
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx eax, byte [eax]
mov byte [esp + 0x50], al
cmp dword [esp + 0x40], 0x1000000
mov dword [esp + 0x90], 0
jg 0x422e10
cmp dword [esp + 0x44], 0x1000000
jg 0x422e10
mov eax, esi
mov dword [esp + 0x58], 0
movzx esi, al
cmp esi, 7
jle 0x423f3c
mov dword [esp + 0x58], 1
sub esi, 8
mov eax, dword [esp + 0x48]
test eax, eax
je 0x424463
cmp bl, 0x10
ja 0x4254ce
cmp bl, 0xe
jbe 0x4244be
mov dword [esp + 0x38], 1
mov edi, 3
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x44]
mov dword [eax], esi
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x40]
mov dword [eax], esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x423f85
mov dword [eax], edi
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov eax, ebx
or eax, ecx
js 0x423fac
mov eax, 0x7fffffff
xor edx, edx
test ecx, ecx
je 0x4255a6
idiv ecx
cmp ebx, eax
jle 0x424b3f
mov eax, str.Corrupt_TGA
jmp 0x422e15
add eax, edi
movzx edi, byte [ebp + 0x28]
jmp 0x4235bd
add eax, ebx
movzx ebx, byte [ebp + 0x28]
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 0xac], edi
mov dword [ebp + 0xb0], eax
mov byte [esp + 0x48], bl
jmp 0x422c65
movzx ecx, byte [ebp + 0x28]
add eax, edi
mov dword [ebp + 0xac], ebx
mov dword [ebp + 0xb0], eax
mov byte [esp + 0x4c], cl
mov ecx, dword [ebp + 0x10]
jmp 0x422c4d
test ebx, ebx
js 0x422f1c
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x2c]
cmp eax, 0xfffffff9
jl 0x422f1c
mov ecx, 8
cdq
idiv ecx
mov dword [esp + 0x2c], eax
test eax, eax
je 0x424521
mov eax, 0x7fffffff
xor edx, edx
mov ecx, dword [esp + 0x30]
idiv dword [esp + 0x2c]
imul ecx, ebx
cmp ecx, eax
jg 0x422f1c
test edi, edi
je 0x4240a2
mov eax, 0x7fffffff
xor edx, edx
mov ecx, dword [esp + 0x28]
idiv edi
cmp ecx, eax
jg 0x424079
test ebx, ebx
je 0x4240a2
mov eax, 0x7fffffff
imul ecx, edi
xor edx, edx
idiv ebx
cmp eax, ecx
jge 0x424088
mov eax, dword [esp + 0x3c]
mov dword [eax], str.Out_of_memory
jmp 0x422532
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4240a2
mov eax, 0x7fffffff
imul ecx, ebx
xor edx, edx
idiv dword [esp + 0x2c]
cmp ecx, eax
jg 0x424079
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
imul eax, edi
imul eax, ebx
imul eax, ecx
mov dword [esp], eax
call sym._malloc
mov dword [esp + 0x30], eax
mov edx, eax
mov dword [esp + 0x34], eax
test eax, eax
je 0x424079
imul ebx, edi
mov eax, dword [esp + 0x28]
mov ecx, ebx
imul ecx, eax
mov eax, dword [esp + 0x2c]
imul ecx, eax
mov eax, ebp
call sym.stbi__getn_stbi__context__unsigned_char__int_
test eax, eax
je 0x424474
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42253a
mov edx, dword [ebp + 8]
cmp eax, edx
je 0x42253a
mov ecx, dword [ebp + 4]
mov eax, dword [ebp]
cmp dword [esi], 0x10
mov dword [esp + 0x134], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x30]
je 0x4254ef
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
jmp sym.stbi__convert_format_unsigned_char__int__int__unsigned_int__unsigned_int___clone_.part.0_
mov eax, dword [ebp + 0x20]
mov byte [esp + 0x5c], 0
test eax, eax
je 0x42418b
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
lea ecx, [ebp + 0x29]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
jne 0x4244e8
xor eax, eax
mov byte [ebp + 0x28], 0
mov dword [ebp + 0x20], eax
mov dword [ebp + 0xb0], ecx
mov dword [ebp + 0xac], ecx
mov eax, dword [ebp + 0x20]
xor esi, esi
mov dword [esp + 0x48], eax
test eax, eax
je 0x423e5f
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
lea edx, [ebp + 0x29]
test eax, eax
jne 0x42450a
xor eax, eax
mov byte [ebp + 0x28], 0
mov dword [ebp + 0x20], eax
xor eax, eax
mov dword [ebp + 0xb0], edx
mov dword [ebp + 0xac], edx
mov dword [esp + 0x48], eax
cmp dword [ebp + 0x20], 0
je 0x424503
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add ebx, eax
add dword [ebp + 0xa8], edx
lea edx, [ebp + 0x29]
test eax, eax
jne 0x424232
xor eax, eax
mov byte [ebp + 0x28], 0
mov ebx, edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0xb0], ebx
movzx esi, byte [ebp + 0x28]
mov dword [ebp + 0xac], edx
jmp 0x423e5f
mov eax, dword [ebp + 0x20]
mov byte [esp + 0x50], 0
xor edi, edi
mov dword [esp + 0x54], eax
test eax, eax
je 0x423ef8
mov eax, dword [ebp + 0x24]
lea edx, [ebp + 0x28]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x34], edx
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [esp + 0x34]
mov ecx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
test ecx, ecx
lea eax, [ebp + 0x29]
jne 0x4244d1
xor edx, edx
xor ecx, ecx
mov byte [ebp + 0x28], 0
mov dword [ebp + 0x20], edx
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], eax
mov dword [esp + 0x54], ecx
cmp dword [ebp + 0x20], 0
je 0x424b35
mov eax, dword [ebp + 0x24]
lea edx, [ebp + 0x28]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x34], edx
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 0xac]
sub ecx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], ecx
lea ecx, [ebp + 0x29]
add edx, eax
test eax, eax
jne 0x424305
xor eax, eax
mov byte [ebp + 0x28], 0
mov edx, ecx
mov dword [ebp + 0x20], eax
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edx
mov dword [ebp + 0xac], ecx
mov byte [esp + 0x50], al
jmp 0x423ef8
mov edi, dword [ebp + 0x20]
xor ebx, ebx
test edi, edi
je 0x423e93
mov eax, dword [ebp + 0x24]
lea ebx, [ebp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add ebx, eax
add dword [ebp + 0xa8], edx
lea edx, [ebp + 0x29]
test eax, eax
jne 0x424368
mov byte [ebp + 0x28], 0
xor ebx, ebx
mov dword [ebp + 0x20], ebx
mov ebx, edx
mov dword [ebp + 0xb0], ebx
movzx ebx, byte [ebp + 0x28]
mov dword [ebp + 0xac], edx
jmp 0x423e93
add eax, edi
movzx edi, byte [ebp + 0x28]
or dword [esp + 0x50], edi
mov edx, edi
jmp 0x423613
mov eax, dword [eax]
mov eax, dword [eax + 8]
test eax, eax
jle 0x4232d4
imul eax, eax, 0x48
mov edi, dword [esp + 0x54]
mov ebx, edi
lea esi, [eax + edi]
mov eax, dword [ebx + 0x46cc]
test eax, eax
je 0x4243cd
mov dword [esp], eax
call sym._free
mov dword [ebx + 0x46cc], 0
mov dword [ebx + 0x46c8], 0
mov eax, dword [ebx + 0x46d0]
test eax, eax
je 0x4243f3
mov dword [esp], eax
call sym._free
mov dword [ebx + 0x46d0], 0
mov dword [ebx + 0x46d8], 0
mov eax, dword [ebx + 0x46d4]
test eax, eax
je 0x42440f
mov dword [esp], eax
call sym._free
mov dword [ebx + 0x46d4], 0
add ebx, 0x48
cmp ebx, esi
jne 0x4243a7
jmp 0x4232d4
and eax, 0xfffffff7
sub al, 1
jne 0x423417
mov edx, 4
mov eax, ebp
call sym.stbi__skip_stbi__context__int___clone_.part.0_
mov eax, ebp
call sym.stbi__get8_stbi__context_
sub eax, 8
cmp al, 0x18
ja 0x423417
mov edx, 0xfefefe7e
bt edx, eax
jb 0x423417
mov edx, 4
mov eax, ebp
call sym.stbi__skip_stbi__context__int___clone_.part.0_
jmp 0x423da2
lea eax, [edi - 8]
cmp al, 0x18
ja case.0x42446d.1
movzx eax, al
jmp dword [eax*4 + 0x4eae78]
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x3c]
mov dword [eax], str.PNM_file_truncated
jmp 0x422532
mov edx, dword [ebp + 0xac]
mov edi, dword [ebp + 0xb0]
jmp 0x4233e3
mov edx, dword [ebp + 0xac]
mov edi, dword [ebp + 0xb0]
jmp 0x4233e8
mov dword [esp + 0x24], 3
jmp 0x421fab
cmp bl, 8
je case.0x42446d.0
mov eax, str.Cant_find_out_TGA_pixelformat
jmp 0x422e15
add edx, ecx
mov dword [ebp + 0xac], eax
movzx edi, byte [ebp + 0x28]
mov dword [ebp + 0xb0], edx
jmp 0x423ed7
add eax, ebx
movzx ebx, byte [ebp + 0x28]
mov dword [ebp + 0xac], ecx
mov dword [ebp + 0xb0], eax
mov byte [esp + 0x5c], bl
jmp 0x423e30
xor esi, esi
jmp 0x423e5f
add eax, ebx
mov dword [ebp + 0xac], edx
movzx ecx, byte [ebp + 0x28]
mov dword [ebp + 0xb0], eax
jmp 0x423e44
test edi, edi
je 0x4240a2
mov eax, 0x7fffffff
xor edx, edx
idiv edi
cmp dword [esp + 0x28], eax
jg 0x424079
test ebx, ebx
je 0x4240a2
mov ecx, dword [esp + 0x28]
jmp 0x424069
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
and eax, 0x10
cmp eax, 1
lea edx, [esi*4]
sbb eax, eax
add eax, 4
mov dword [edi], eax
mov eax, dword [esp + 0x34]
mov edi, ebp
mov ebp, edx
mov dword [esp + 0x4c], eax
imul eax, dword [esp + 0x54], 3
lea eax, [esp + eax + 0x93]
mov dword [esp + 0x58], eax
xor eax, eax
cmp ecx, eax
jle 0x422d1d
lea ebx, [esp + 0x90]
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ebp
mov eax, dword [esp + 0x44]
movzx eax, byte [eax + 1]
cmp al, 1
je 0x424810
cmp al, 2
je 0x424664
test al, al
je 0x424608
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [eax], str.packet_has_bad_compression_type
jmp 0x422d03
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._free
mov eax, str.Out_of_memory
jmp 0x422e15
mov dword [esp], ebp
call sym._free
jmp 0x424079
xor ebx, ebx
jmp 0x424626
mov eax, dword [esp + 0x44]
movzx edx, byte [eax + 2]
mov eax, edi
call sym.stbi__readval_stbi__context__int__unsigned_char_
test eax, eax
je 0x424803
add ebx, 1
mov eax, dword [esp + 0x4c]
lea ecx, [eax + ebx*4]
cmp dword [esp + 0x38], ebx
jg 0x42460c
add dword [esp + 0x44], 3
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x44]
cmp eax, esi
jne 0x4245b2
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x38]
add dword [esp + 0x4c], ebp
mov ecx, dword [esp + 0x40]
add eax, 1
jmp 0x42458f
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
cmp dword [esp + 0x48], 0
jle 0x424633
mov edx, dword [edi + 0xac]
mov eax, dword [edi + 0x10]
cmp edx, dword [edi + 0xb0]
jae 0x4247b4
lea eax, [edx + 1]
mov dword [edi + 0xac], eax
movzx eax, byte [edx]
cmp dword [edi + 0x10], 0
movzx esi, al
je 0x4246b8
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call dword [edi + 0x18]
test eax, eax
je 0x4246ca
cmp dword [edi + 0x20], 0
je 0x424a18
mov eax, dword [edi + 0xb0]
cmp dword [edi + 0xac], eax
jae 0x424a18
cmp esi, 0x7f
jle 0x4247d8
lea ebx, [esi - 0x7f]
cmp esi, 0x80
je 0x4247a6
cmp dword [esp + 0x48], ebx
jl 0x42478f
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x80]
movzx esi, byte [eax + 2]
mov eax, esi
movzx edx, al
mov eax, edi
call sym.stbi__readval_stbi__context__int__unsigned_char_
test eax, eax
je 0x424803
mov edx, esi
mov eax, esi
mov ecx, esi
and eax, 0x10
and edx, 0x20
and ecx, 0x40
mov byte [esp + 0x50], al
xor eax, eax
mov byte [esp + 0x54], dl
jmp 0x424775
mov edx, esi
test dl, dl
jns 0x42473c
movzx edx, byte [esp + 0x80]
mov byte [ebp + eax*4], dl
test cl, cl
je 0x42474c
movzx edx, byte [esp + 0x81]
mov byte [ebp + eax*4 + 1], dl
cmp byte [esp + 0x54], 0
je 0x42475f
movzx edx, byte [esp + 0x82]
mov byte [ebp + eax*4 + 2], dl
cmp byte [esp + 0x50], 0
je 0x424772
movzx edx, byte [esp + 0x83]
mov byte [ebp + eax*4 + 3], dl
add eax, 1
cmp ebx, eax
jg 0x42472a
xor eax, eax
test ebx, ebx
cmovns eax, ebx
lea esi, [ebp + eax*4]
sub dword [esp + 0x48], ebx
mov ebp, esi
jmp 0x424670
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [eax], str.scanline_overrun
jmp 0x422d03
mov eax, edi
call sym.stbi__get16be_stbi__context_
mov ebx, eax
jmp 0x4246e2
mov esi, dword [edi + 0x20]
test esi, esi
jne 0x4249c7
test eax, eax
je 0x424a18
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call dword [edi + 0x18]
test eax, eax
jne 0x4246ae
lea ebx, [esi + 1]
cmp dword [esp + 0x48], ebx
jl 0x42478f
lea esi, [ebp + ebx*4]
jmp 0x4247ee
add ebp, 4
cmp ebp, esi
je 0x424784
mov eax, dword [esp + 0x44]
mov ecx, ebp
movzx edx, byte [eax + 2]
mov eax, edi
call sym.stbi__readval_stbi__context__int__unsigned_char_
test eax, eax
jne 0x4247e7
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
jmp 0x422d03
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
cmp dword [esp + 0x48], 0
jle 0x424633
mov eax, dword [edi + 0xac]
mov edx, dword [edi + 0x10]
cmp eax, dword [edi + 0xb0]
jae 0x424908
lea edx, [eax + 1]
mov dword [edi + 0xac], edx
movzx ebx, byte [eax]
cmp dword [edi + 0x10], 0
je 0x424865
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call dword [edi + 0x18]
test eax, eax
je 0x424877
cmp dword [edi + 0x20], 0
je 0x4249b0
mov eax, dword [edi + 0xb0]
cmp dword [edi + 0xac], eax
jae 0x4249b0
mov esi, dword [esp + 0x48]
movzx eax, bl
cmp eax, esi
jle 0x424929
mov ecx, dword [esp + 0x44]
mov ebx, esi
mov eax, edi
movzx esi, byte [ecx + 2]
mov ecx, esi
movzx edx, cl
lea ecx, [esp + 0x80]
call sym.stbi__readval_stbi__context__int__unsigned_char_
test eax, eax
je 0x424803
mov eax, dword [esp + 0x48]
movzx ebx, bl
mov ecx, esi
mov edx, esi
and ecx, 0x40
and edx, 0x20
mov byte [esp + 0x54], cl
mov ecx, esi
mov byte [esp + 0x50], dl
mov edx, esi
and edx, 0x10
test cl, cl
js 0x424a59
cmp byte [esp + 0x54], 0
jne 0x424aa9
cmp byte [esp + 0x50], 0
jne 0x424a2f
test dl, dl
je 0x424902
xor edx, edx
movzx ecx, byte [esp + 0x83]
mov byte [ebp + edx*4 + 3], cl
add edx, 1
cmp edx, eax
jl 0x4248ef
lea ebp, [ebp + ebx*4]
jmp 0x424956
cmp dword [edi + 0x20], 0
jne 0x42495f
test edx, edx
je 0x4249b0
mov eax, dword [edi + 0x1c]
xor ebx, ebx
mov dword [esp], eax
call dword [edi + 0x18]
test eax, eax
jne 0x42485b
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x80]
movzx esi, byte [eax + 2]
mov eax, esi
movzx edx, al
mov eax, edi
call sym.stbi__readval_stbi__context__int__unsigned_char_
test eax, eax
je 0x424803
mov eax, ebx
test ebx, ebx
jne 0x4248b2
sub dword [esp + 0x48], eax
jmp 0x42481c
mov eax, dword [edi + 0x24]
lea ebx, [edi + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call edx
mov edx, dword [edi + 0xac]
sub edx, dword [edi + 0xb4]
add ebx, eax
add dword [edi + 0xa8], edx
lea edx, [edi + 0x29]
test eax, eax
jne 0x42499b
xor eax, eax
mov byte [edi + 0x28], 0
mov ebx, edx
mov dword [edi + 0x20], eax
mov dword [edi + 0xb0], ebx
movzx ebx, byte [edi + 0x28]
mov dword [edi + 0xac], edx
jmp 0x424848
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [eax], str.file_too_short__pure_read_count_
jmp 0x422d03
mov edx, dword [edi + 0x24]
lea ebx, [edi + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov edx, dword [edi + 0x1c]
mov dword [esp], edx
call eax
mov edx, dword [edi + 0xac]
sub edx, dword [edi + 0xb4]
add ebx, eax
add dword [edi + 0xa8], edx
lea edx, [edi + 0x29]
test eax, eax
jne 0x424a03
xor eax, eax
mov byte [edi + 0x28], 0
mov ebx, edx
mov dword [edi + 0x20], eax
mov dword [edi + 0xb0], ebx
movzx eax, byte [edi + 0x28]
mov dword [edi + 0xac], edx
jmp 0x424698
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [eax], str.file_too_short__mixed_read_count_
jmp 0x422d03
lea ecx, [ebp + ebx*4]
movzx ebx, byte [esp + 0x82]
mov byte [ebp + 2], bl
test dl, dl
je 0x424a4d
movzx ebx, byte [esp + 0x83]
mov byte [ebp + 3], bl
add ebp, 4
cmp ecx, ebp
jne 0x424a33
jmp 0x424956
movzx ecx, byte [esp + 0x54]
lea esi, [ebp + ebx*4]
movzx ebx, byte [esp + 0x80]
mov byte [ebp], bl
test cl, cl
je 0x424a7c
movzx ebx, byte [esp + 0x81]
mov byte [ebp + 1], bl
cmp byte [esp + 0x50], 0
je 0x424a8e
movzx ebx, byte [esp + 0x82]
mov byte [ebp + 2], bl
test dl, dl
je 0x424a9d
movzx ebx, byte [esp + 0x83]
mov byte [ebp + 3], bl
add ebp, 4
cmp ebp, esi
jne 0x424a62
jmp 0x424956
xor ecx, ecx
mov esi, edx
movzx edx, byte [esp + 0x81]
cmp byte [esp + 0x50], 0
mov byte [ebp + ecx*4 + 1], dl
je 0x424acc
movzx edx, byte [esp + 0x82]
mov byte [ebp + ecx*4 + 2], dl
mov edx, esi
test dl, dl
je 0x424ade
movzx edx, byte [esp + 0x83]
mov byte [ebp + ecx*4 + 3], dl
add ecx, 1
cmp ecx, eax
jl 0x424aad
jmp 0x424902
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x54]
mov edx, dword [ebp + 8]
call sym.stbi__free_jpeg_components_stbi__jpeg__int__int___clone_.constprop.0_
jmp 0x42333f
xor ecx, ecx
mov edi, 1
mov dword [esp + 0x38], ecx
jmp 0x423f67
mov edi, dword [esp + 0x54]
xor ebx, ebx
mov dword [esp + 0x38], ebx
sar edi, 3
jmp 0x423f67
xor eax, eax
cmp esi, 3
setne al
mov dword [esp + 0x38], eax
lea edi, [eax + 2]
jmp 0x423f67
mov byte [esp + 0x50], 0
jmp 0x423ef8
mov eax, 0x7fffffff
xor edx, edx
idiv edi
mov esi, eax
mov eax, ebx
imul eax, ecx
cmp eax, esi
jg 0x423fac
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
imul eax, ebx
mov dword [esp + 0x30], eax
imul eax, edi
mov dword [esp], eax
call sym._malloc
mov dword [esp + 0x34], eax
test eax, eax
je 0x4245f1
movzx eax, byte [esp + 0x5c]
test eax, eax
je 0x424bac
cmp dword [ebp + 0x10], 0
mov edx, dword [ebp + 0xac]
je 0x424ba4
mov ebx, dword [ebp + 0xb0]
mov ecx, ebx
sub ecx, edx
cmp eax, ecx
jg 0x4255af
add edx, eax
mov dword [ebp + 0xac], edx
movzx ebx, byte [esp + 0x50]
mov eax, dword [esp + 0x58]
and ebx, 0x20
or eax, dword [esp + 0x48]
jne 0x424ec6
cmp dword [esp + 0x38], 0
jne 0x425563
cmp dword [esp + 0x40], 0
jle 0x424de0
mov esi, dword [esp + 0x44]
mov eax, dword [ebp + 0xac]
imul esi, edi
test bl, bl
je 0x424e51
xor edx, edx
mov dword [esp + 0x2c], edi
mov ebx, dword [esp + 0x34]
mov edi, esi
mov dword [esp + 0x28], edx
jmp 0x424c14
add dword [esp + 0x28], 1
add ebx, edi
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x40], esi
je 0x42555a
cmp dword [ebp + 0x10], 0
mov ecx, dword [ebp + 0xb0]
je 0x424c2c
mov esi, ecx
sub esi, eax
cmp edi, esi
jg 0x4255c9
lea esi, [eax + edi]
cmp ecx, esi
jb 0x424bff
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._memcpy
mov eax, dword [ebp + 0xac]
add eax, edi
mov dword [ebp + 0xac], eax
jmp 0x424bff
mov edi, ebx
movzx ebx, byte [esp + 0x60]
test bl, bl
jne 0x424dcd
mov ecx, dword [esp + 0x40]
test ecx, ecx
jle 0x424dcd
mov ebx, dword [esp + 0x44]
mov esi, ebx
imul esi, edi
test esi, esi
je 0x424dcd
mov eax, dword [esp + 0x30]
xor edx, edx
mov dword [esp + 0x68], edi
mov dword [esp + 0x48], edx
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
imul eax, edi
mov dword [esp + 0x28], ebx
mov ebp, eax
lea eax, [esi + ebx]
mov dword [esp + 0x50], eax
lea eax, [ecx - 1]
shr eax, 1
add eax, 1
mov dword [esp + 0x60], eax
lea eax, [esi - 1]
mov dword [esp + 0x5c], eax
mov eax, esi
and eax, 0xfffffffc
mov dword [esp + 0x4c], eax
mov eax, esi
and eax, 3
mov dword [esp + 0x58], eax
cmp dword [esp + 0x5c], 2
mov eax, dword [esp + 0x3c]
jbe 0x4251b1
mov ebx, dword [esp + 0x28]
lea edi, [ebx + eax]
lea edx, [ebx + ebp]
lea ebx, [ebp + 4]
mov ecx, edi
cmp eax, ebx
lea ebx, [eax + 4]
setge byte [esp + 0x54]
cmp ebp, ebx
setge bl
or bl, byte [esp + 0x54]
je 0x4251b7
mov ebx, edx
mov eax, dword [esp + 0x4c]
or ebx, edi
and ebx, 3
sete bl
add eax, edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x28]
test bl, bl
je 0x4251b7
mov ebx, dword [ecx]
mov edi, dword [edx]
add ecx, 4
add edx, 4
mov dword [ecx - 4], edi
mov dword [edx - 4], ebx
cmp dword [esp + 0x54], edx
jne 0x424d23
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [esp + 0x4c]
cmp eax, esi
je 0x424daa
mov edi, dword [esp + 0x3c]
add edi, eax
add eax, ebp
lea ecx, [edx + edi]
add edx, eax
mov dword [esp + 0x54], eax
cmp dword [esp + 0x58], 1
movzx eax, byte [edx]
movzx ebx, byte [ecx]
mov byte [ecx], al
mov eax, dword [esp + 0x54]
lea ecx, [edi + 1]
mov byte [edx], bl
lea edx, [eax + 1]
je 0x424daa
mov eax, dword [esp + 0x28]
add edx, eax
add ecx, eax
movzx eax, byte [edx]
movzx ebx, byte [ecx]
mov byte [ecx], al
mov eax, dword [esp + 0x54]
mov byte [edx], bl
lea edx, [edi + 2]
add eax, 2
cmp dword [esp + 0x58], 2
mov ecx, eax
je 0x424daa
mov eax, dword [esp + 0x28]
add edx, eax
add ecx, eax
movzx ebx, byte [edx]
movzx eax, byte [ecx]
mov byte [edx], al
mov byte [ecx], bl
add dword [esp + 0x48], 1
mov edi, dword [esp + 0x60]
sub ebp, esi
mov eax, dword [esp + 0x48]
add dword [esp + 0x3c], esi
add dword [esp + 0x50], esi
cmp eax, edi
jne 0x424ccc
mov edi, dword [esp + 0x68]
cmp dword [esp + 0x2c], 0
je 0x424de0
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._free
cmp dword [esp + 0x38], 0
jne 0x424dec
cmp edi, 2
jg 0x424e27
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42253a
cmp eax, edi
je 0x42253a
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
call sym.stbi__convert_format_unsigned_char__int__int__unsigned_int__unsigned_int___clone_.part.0_
mov dword [esp + 0x34], eax
jmp 0x42253a
cmp dword [esp + 0x30], 0
je 0x424dec
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x64]
movzx ecx, byte [eax]
movzx ebx, byte [eax + 2]
add edx, 1
mov esi, dword [esp + 0x30]
mov byte [eax], bl
mov byte [eax + 2], cl
add eax, edi
cmp edx, esi
jne 0x424e36
jmp 0x424dec
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ecx
sub edx, ebx
mov ebx, dword [esp + 0x34]
imul edx, edi
mov edi, esi
add ebx, edx
jmp 0x424e87
add dword [esp + 0x28], 1
sub ebx, edi
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x40], esi
je 0x42555a
cmp dword [ebp + 0x10], 0
mov ecx, dword [ebp + 0xb0]
je 0x424e9f
mov esi, ecx
sub esi, eax
cmp edi, esi
jg 0x42556e
lea esi, [eax + edi]
cmp ecx, esi
jb 0x424e72
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._memcpy
mov eax, dword [ebp + 0xac]
add eax, edi
mov dword [ebp + 0xac], eax
jmp 0x424e72
cmp dword [esp + 0x48], 0
je 0x425563
cmp dword [esp + 0x4c], 0
je 0x42504f
cmp dword [esp + 0x60], 0
je 0x424ef4
js 0x425601
mov edx, dword [esp + 0x60]
mov eax, ebp
call sym.stbi__skip_stbi__context__int___clone_.part.0_
mov eax, dword [esp + 0x4c]
cmp esi, eax
jb 0x4245e5
mov esi, dword [esp + 0x4c]
imul esi, edi
mov dword [esp], esi
call sym._malloc
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4245e5
cmp dword [esp + 0x38], 0
je 0x4251e6
xor edx, edx
mov byte [esp + 0x3c], bl
mov esi, eax
mov dword [esp + 0x28], edx
mov eax, ebp
call sym.stbi__get16le_stbi__context_
add dword [esp + 0x28], 1
mov ebx, eax
shr ax, 0xa
and eax, 0x1f
mov ecx, eax
shl ecx, 8
sub ecx, eax
mov eax, 0x84210843
imul ecx
lea eax, [edx + ecx]
sar ecx, 0x1f
sar eax, 4
sub eax, ecx
mov byte [esi], al
mov eax, ebx
shr ax, 5
and eax, 0x1f
mov ecx, eax
shl ecx, 8
sub ecx, eax
mov eax, 0x84210843
imul ecx
lea eax, [edx + ecx]
sar ecx, 0x1f
sar eax, 4
sub eax, ecx
mov byte [esi + 1], al
mov eax, ebx
and eax, 0x1f
mov ecx, eax
shl ecx, 8
sub ecx, eax
mov eax, 0x84210843
imul ecx
lea eax, [edx + ecx]
sar ecx, 0x1f
sar eax, 4
sub eax, ecx
mov byte [esi + 2], al
mov eax, dword [esp + 0x28]
add esi, edi
cmp dword [esp + 0x4c], eax
jg 0x424f32
movzx ebx, byte [esp + 0x3c]
cmp dword [esp + 0x30], 0
je 0x424c5a
mov eax, dword [esp + 0x34]
mov byte [esp + 0x60], bl
mov ebx, edi
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], eax
mov eax, 1
mov edi, dword [esp + 0x58]
test edi, edi
je 0x425094
mov esi, dword [esp + 0x50]
test esi, esi
je 0x425060
mov edx, dword [esp + 0x28]
test edx, edx
je 0x425094
test eax, eax
jne 0x425237
test ebx, ebx
je 0x42502d
xor eax, eax
movzx edx, byte [esp + eax + 0x90]
mov edi, dword [esp + 0x5c]
mov byte [edi + eax], dl
add eax, 1
cmp eax, ebx
jb 0x425017
add dword [esp + 0x3c], 1
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
sub dword [esp + 0x50], 1
add dword [esp + 0x5c], ebx
cmp eax, edi
je 0x424c53
xor eax, eax
jmp 0x424fe9
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._free
jmp 0x423fac
mov eax, dword [ebp + 0xac]
cmp eax, dword [ebp + 0xb0]
jae 0x42529e
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx eax, byte [eax]
mov edx, eax
sar eax, 7
and edx, 0x7f
mov dword [esp + 0x28], eax
add edx, 1
movzx edi, dl
mov dword [esp + 0x50], edi
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x42517d
mov eax, dword [esp + 0x38]
test eax, eax
je 0x425100
mov eax, ebp
mov edi, 0x1f
call sym.stbi__get16le_stbi__context_
mov ecx, eax
shr ax, 0xa
and eax, 0x1f
imul eax, eax, 0xff
cdq
idiv edi
mov byte [esp + 0x90], al
mov eax, ecx
shr ax, 5
and eax, 0x1f
imul eax, eax, 0xff
cdq
idiv edi
mov byte [esp + 0x91], al
mov eax, ecx
and eax, 0x1f
imul eax, eax, 0xff
cdq
idiv edi
mov byte [esp + 0x92], al
jmp 0x425011
mov ecx, dword [ebp + 0xac]
mov eax, dword [ebp + 0xb0]
cmp ecx, eax
jb 0x4254bc
cmp dword [ebp + 0x20], 0
jne 0x425448
mov byte [esp + 0x90], 0
cmp ebx, 1
je 0x425015
cmp dword [ebp + 0x20], 0
jne 0x4253c9
mov byte [esp + 0x91], 0
cmp ebx, 2
jle 0x425011
cmp dword [ebp + 0x20], 0
jne 0x425351
mov byte [esp + 0x92], 0
cmp ebx, 4
jne 0x425011
xor eax, eax
cmp dword [ebp + 0x20], 0
jne 0x4252fc
mov byte [esp + 0x93], al
jmp 0x425015
cmp dword [esp + 0x54], 8
je 0x425218
mov eax, ebp
call sym.stbi__get16le_stbi__context_
cmp dword [esp + 0x4c], eax
jg 0x425197
xor eax, eax
imul eax, ebx
mov edi, dword [esp + 0x2c]
mov ecx, ebx
lea esi, [edi + eax]
lea edi, [esp + 0x90]
rep movsb byte es:[edi], byte [esi]
jmp 0x425011
mov edi, dword [esp + 0x28]
add edi, eax
mov edx, edi
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov ecx, edx
movzx eax, byte [edx]
add edx, 1
sub ecx, ebx
movzx ebx, byte [ecx + ebp]
mov byte [edx - 1], bl
mov byte [ecx + ebp], al
mov eax, dword [esp + 0x50]
cmp edx, eax
jne 0x4251bd
mov dword [esp + 0x28], edi
jmp 0x424daa
mov edx, dword [esp + 0x2c]
mov ecx, esi
mov eax, ebp
call sym.stbi__getn_stbi__context__unsigned_char__int_
test eax, eax
jne 0x424fbd
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._free
jmp 0x423fac
mov eax, dword [ebp + 0xac]
cmp eax, dword [ebp + 0xb0]
jae 0x425240
lea edx, [eax + 1]
mov dword [ebp + 0xac], edx
movzx eax, byte [eax]
jmp 0x42518f
mov dword [esp + 0x28], eax
jmp 0x425094
xor eax, eax
cmp dword [ebp + 0x20], 0
je 0x42518f
mov eax, dword [ebp + 0x24]
lea esi, [ebp + 0x28]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add esi, eax
add dword [ebp + 0xa8], edx
lea edx, [ebp + 0x29]
test eax, eax
jne 0x425289
xor eax, eax
mov byte [ebp + 0x28], 0
mov esi, edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0xb0], esi
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xac], edx
jmp 0x42518f
xor eax, eax
cmp dword [ebp + 0x20], 0
je 0x42507e
mov eax, dword [ebp + 0x24]
lea esi, [ebp + 0x28]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add esi, eax
add dword [ebp + 0xa8], edx
lea edx, [ebp + 0x29]
test eax, eax
jne 0x4252e7
xor ecx, ecx
mov byte [ebp + 0x28], 0
mov esi, edx
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0xb0], esi
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xac], edx
jmp 0x42507e
mov eax, dword [ebp + 0x24]
lea esi, [ebp + 0x28]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
lea ecx, [ebp + 0x29]
mov edx, eax
mov eax, dword [ebp + 0xac]
sub eax, dword [ebp + 0xb4]
add dword [ebp + 0xa8], eax
lea eax, [esi + edx]
test edx, edx
jne 0x42533c
xor esi, esi
mov byte [ebp + 0x28], 0
mov eax, ecx
mov dword [ebp + 0x20], esi
mov dword [ebp + 0xb0], eax
movzx eax, byte [ebp + 0x28]
mov dword [ebp + 0xac], ecx
jmp 0x425171
mov eax, dword [ebp + 0x24]
lea esi, [ebp + 0x28]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
lea edx, [ebp + 0x29]
test eax, eax
jne 0x42543d
xor edi, edi
mov byte [ebp + 0x28], 0
mov eax, edx
mov dword [ebp + 0x20], edi
mov dword [ebp + 0xb0], eax
movzx ecx, byte [ebp + 0x28]
mov dword [ebp + 0xac], edx
mov byte [esp + 0x92], cl
cmp ebx, 4
jne 0x425011
cmp edx, eax
jae 0x425165
lea eax, [edx + 1]
mov dword [ebp + 0xac], eax
movzx eax, byte [edx]
jmp 0x425171
mov eax, dword [ebp + 0x24]
lea esi, [ebp + 0x28]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
lea ecx, [ebp + 0x29]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
test eax, eax
jne 0x425444
mov byte [ebp + 0x28], 0
xor eax, eax
mov dword [ebp + 0x20], eax
mov eax, ecx
mov dword [ebp + 0xb0], eax
movzx edx, byte [ebp + 0x28]
mov dword [ebp + 0xac], ecx
mov byte [esp + 0x91], dl
cmp ebx, 2
jle 0x425011
cmp ecx, eax
jae 0x42514a
lea edx, [ecx + 1]
mov dword [ebp + 0xac], edx
movzx ecx, byte [ecx]
jmp 0x4253a0
add eax, esi
jmp 0x425390
add eax, esi
jmp 0x425404
mov eax, dword [ebp + 0x24]
lea esi, [ebp + 0x28]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov edx, dword [ebp + 0xac]
sub edx, dword [ebp + 0xb4]
add dword [ebp + 0xa8], edx
lea edx, [ebp + 0x29]
test eax, eax
jne 0x4254ca
mov byte [ebp + 0x28], 0
xor eax, eax
mov dword [ebp + 0x20], eax
mov eax, edx
mov dword [ebp + 0xb0], eax
movzx ecx, byte [ebp + 0x28]
mov dword [ebp + 0xac], edx
mov byte [esp + 0x90], cl
cmp ebx, 1
je 0x425015
cmp edx, eax
jae 0x42512f
lea ecx, [edx + 1]
mov dword [ebp + 0xac], ecx
movzx edx, byte [edx]
jmp 0x425414
lea edx, [ecx + 1]
mov dword [ebp + 0xac], edx
movzx ecx, byte [ecx]
jmp 0x425493
add eax, esi
jmp 0x425483
lea edx, [ebx - 0x18]
mov eax, str.Cant_find_out_TGA_pixelformat
and dl, 0xf7
jne 0x422e15
mov edi, ebx
xor esi, esi
mov dword [esp + 0x38], esi
sar edi, 3
jmp 0x423f67
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
jmp sym.stbi__convert_format16_unsigned_short__int__int__unsigned_int__unsigned_int___clone_.part.0_
test dl, dl
je 0x42550c
mov eax, esi
test al, al
jne 0x423417
mov edx, dword [ebp + 0xb4]
mov eax, dword [ebp + 0xb8]
and ebx, 0xfffffff7
cmp bl, 0x10
je 0x423e0c
mov dword [ebp + 0xac], edx
jmp 0x423429
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [eax], str.packet_isnt_8bpp
jmp 0x422d03
imul ecx, ebx
cmp ecx, 0x7fffffff
je 0x423333
jmp 0x42369f
mov edi, dword [esp + 0x2c]
jmp 0x424de0
xor eax, eax
mov dword [esp + 0x2c], eax
jmp 0x424fbd
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._memcpy
mov eax, edi
sub eax, esi
add esi, ebx
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov eax, dword [ebp + 0xb0]
mov dword [ebp + 0xac], eax
jmp 0x424e72
idiv edi
mov esi, eax
jmp 0x424b57
sub eax, ecx
mov dword [ebp + 0xac], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x14]
jmp 0x424bac
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._memcpy
mov eax, edi
sub eax, esi
add esi, ebx
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call dword [ebp + 0x10]
mov eax, dword [ebp + 0xb0]
mov dword [ebp + 0xac], eax
jmp 0x424bff
mov eax, dword [ebp + 0xb0]
mov dword [ebp + 0xac], eax
jmp 0x424ef4