Function at 0x433230
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1408
call fcn.00443340
mov eax, dword [0x73dd74]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov ecx, 0x743104
push edi
mov dword [ebp - 0x1408], esi
call fcn.00442547
xor eax, eax
mov byte [ebp - 0x13ed], 0
mov byte [ebp - 0x13ee], 0
xor edi, edi
mov dword [ebp - 0x13fc], eax
mov dword [ebp - 0x1400], eax
mov dword [ebp - 0x13f8], eax
mov dword [ebp - 0x13f4], 1
nop dword [eax + eax]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4332ad
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetc]
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x4332c0
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x4332be
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x4332c0
xor ecx, ecx
movzx eax, byte [edi + 0x73d30c]
cmp ecx, eax
jne 0x433c05
inc edi
cmp edi, 8
jl 0x433290
cmp dword [ebp + 0xc], 1
je 0x433bef
nop
push esi
call fcn.00431130
push esi
mov ebx, eax
call fcn.00431130
shl ebx, 0x10
push esi
add ebx, eax
call fcn.00431130
push esi
mov edi, eax
call fcn.00431130
shl edi, 0x10
add esp, 0x10
lea ecx, [eax + edi]
mov eax, dword [ebp - 0x13f4]
test eax, eax
je 0x433320
cmp ecx, 0x49484452
jne 0x433518
cmp ecx, 0x49484452
ja 0x433731
je 0x433555
cmp ecx, 0x49444154
je 0x433487
cmp ecx, 0x49454e44
jne 0x433745
cmp dword [ebp + 0xc], 0
jne 0x433bef
mov edi, dword [esi + 0x1c]
test edi, edi
je 0x433518
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
push 0x4000
mov dword [ebp - 0x13f8], eax
call eax
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x433afd
mov eax, dword [ebp - 0x13fc]
add eax, edi
mov dword [ebp - 0x13ec], edi
mov dword [ebp - 0x13e8], eax
lea eax, [ecx + 0x4000]
mov dword [ebp - 0x13d4], eax
lea eax, [ebp - 0x13ec]
push 1
push eax
mov dword [ebp - 0x13d8], ecx
mov dword [ebp - 0x13dc], ecx
mov dword [ebp - 0x13d0], 1
call fcn.00433c30
add esp, 8
test eax, eax
je 0x433aee
mov eax, dword [ebp - 0x13d8]
mov edi, dword [ebp - 0x13dc]
sub edi, eax
mov dword [esi + 0x20], eax
test eax, eax
je 0x433c0f
push dword [esi + 0x1c]
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [ebp - 0x1400], eax
call eax
mov ebx, dword [ebp + 0x10]
add esp, 4
mov dword [esi + 0x1c], 0
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp ebx, eax
jne 0x43341b
cmp ebx, 3
je 0x43341b
cmp byte [ebp - 0x13ed], 0
je 0x433426
cmp byte [ebp - 0x13ee], 0
jne 0x433426
mov eax, ecx
push eax
push edi
mov dword [esi + 0xc], eax
push dword [esi + 0x20]
push esi
call fcn.0042f720
add esp, 0x10
test eax, eax
je 0x433c0f
cmp byte [ebp - 0x13ee], 0
je 0x4339b1
mov edx, dword [esi + 4]
imul edx, dword [esi]
mov ecx, dword [esi + 0x24]
test edx, edx
je 0x4339b1
cmp dword [esi + 0xc], 2
mov bl, byte [ebp - 0x1404]
jne 0x433988
nop dword [eax]
cmp byte [ecx], bl
lea ecx, [ecx + 2]
sete al
dec al
mov byte [ecx - 1], al
sub edx, 1
jne 0x433470
jmp 0x4339ae
mov al, byte [ebp - 0x13ed]
test al, al
je 0x43349a
cmp dword [ebp - 0x13f8], 0
je 0x433518
cmp dword [ebp + 0xc], 2
je 0x433b17
mov ecx, dword [ebp - 0x13fc]
mov eax, dword [ebp - 0x1400]
lea edi, [ebx + ecx]
cmp edi, eax
jbe 0x4334fa
test eax, eax
jne 0x4334cb
mov eax, 0x1000
cmp ebx, eax
cmova eax, ebx
mov dword [ebp - 0x1400], eax
cmp edi, eax
jbe 0x4334dc
nop
add eax, eax
cmp edi, eax
ja 0x4334d0
mov dword [ebp - 0x1400], eax
push eax
push dword [esi + 0x1c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
add esp, 8
test eax, eax
je 0x4339fa
mov ecx, dword [ebp - 0x13fc]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x433535
push eax
mov eax, dword [esi + 0x1c]
push ebx
add eax, ecx
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
cmp eax, ebx
je 0x43354a
pop edi
pop esi
mov dword [0x73e710], 0x71c1c0
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1c]
push ebx
push dword [esi + 0x14]
add eax, ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [esi + 0x14], ebx
mov dword [ebp - 0x13fc], edi
jmp 0x43396a
test eax, eax
je 0x433518
cmp ebx, 0xd
jne 0x433518
push esi
call fcn.00431130
push esi
mov edi, eax
call fcn.00431130
shl edi, 0x10
add esp, 8
add eax, edi
mov dword [esi], eax
cmp eax, 0x1000000
ja 0x433b8a
push esi
call fcn.00431130
push esi
mov edi, eax
call fcn.00431130
shl edi, 0x10
add esp, 8
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x433b8a
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4335c4
mov ebx, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetc]
push eax
call ebx
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x4335dd
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x433b6d
movzx ecx, byte [eax]
inc eax
mov ebx, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetc]
mov dword [esi + 0x14], eax
cmp ecx, 8
jne 0x433b6d
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4335ff
push eax
call ebx
mov edi, eax
add esp, 4
xor eax, eax
cmp edi, 0xffffffff
cmove edi, eax
jmp 0x43360e
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x433633
movzx edi, byte [eax]
inc eax
mov dword [esi + 0x14], eax
mov eax, edi
cmp edi, 6
jg 0x433518
cmp edi, 3
jne 0x433627
mov byte [ebp - 0x13ed], 3
jmp 0x433635
mov edi, eax
test al, 1
jne 0x433518
jmp 0x433635
xor edi, edi
mov eax, dword [esi + 0x10]
test eax, eax
je 0x43364e
push eax
call ebx
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x43365d
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x433665
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x433518
mov eax, dword [esi + 0x10]
test eax, eax
je 0x43367e
push eax
call ebx
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x43368d
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x433695
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x433518
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4336ae
push eax
call ebx
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x4336bd
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x4336c5
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x433b33
mov ecx, dword [esi]
test ecx, ecx
je 0x433518
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x433518
xor edx, edx
mov eax, 0x40000000
div ecx
cmp byte [ebp - 0x13ed], 0
jne 0x43371a
mov ecx, edi
xor edx, edx
shr ecx, 2
and edi, 2
and ecx, 1
or edi, 1
add ecx, edi
div ecx
mov dword [esi + 8], ecx
cmp eax, ebx
jb 0x433b50
cmp dword [ebp + 0xc], 2
je 0x433bef
jmp 0x43396a
shr eax, 2
mov dword [esi + 8], 1
cmp eax, ebx
jb 0x433518
jmp 0x43396a
cmp ecx, 0x504c5445
je 0x43383b
cmp ecx, 0x74524e53
je 0x433772
test ecx, 0x20000000
je 0x433ba7
mov eax, dword [esi + 0x10]
test eax, eax
je 0x43376a
push 1
push ebx
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
jmp 0x43396a
add dword [esi + 0x14], ebx
jmp 0x43396a
cmp dword [esi + 0x1c], 0
jne 0x433518
cmp byte [ebp - 0x13ed], 0
je 0x4337f7
cmp dword [ebp + 0xc], 2
je 0x433be8
mov eax, dword [ebp - 0x13f8]
test eax, eax
je 0x433518
cmp ebx, eax
ja 0x433518
xor edi, edi
mov byte [ebp - 0x13ed], 4
test ebx, ebx
je 0x43396a
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4337d3
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetc]
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x4337e6
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x4337e4
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x4337e6
xor ecx, ecx
mov byte [ebp + edi*4 - 0x401], cl
inc edi
cmp edi, ebx
jb 0x4337b6
jmp 0x43396a
mov ecx, dword [esi + 8]
test cl, 1
je 0x433518
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x433518
xor edi, edi
mov byte [ebp - 0x13ee], 1
test ecx, ecx
jle 0x43396a
nop
push esi
call fcn.00431130
mov byte [ebp + edi - 0x1404], al
add esp, 4
inc edi
cmp edi, dword [esi + 8]
jl 0x433820
jmp 0x43396a
cmp ebx, 0x300
ja 0x433518
mov eax, 0xaaaaaaab
mul ebx
mov ecx, edx
shr ecx, 1
mov dword [ebp - 0x13f8], ecx
lea eax, [ecx + ecx*2]
cmp eax, ebx
jne 0x433518
xor ebx, ebx
test ecx, ecx
je 0x43396a
nop dword [eax]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4338f4
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetc]
add esp, 4
movzx ecx, al
cmp eax, 0xffffffff
mov dword [ebp - 0x13f4], 0
mov eax, dword [esi + 0x10]
lea edi, [ebx*4]
cmove ecx, dword [ebp - 0x13f4]
mov edx, edi
mov byte [ebp + edi - 0x404], cl
test eax, eax
je 0x43391c
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetc]
mov edx, dword [esi + 0x10]
add esp, 4
cmp eax, 0xffffffff
movzx ecx, al
mov dword [ebp - 0x13f4], 0
cmove ecx, dword [ebp - 0x13f4]
mov byte [ebp + edi - 0x403], cl
test edx, edx
je 0x43393b
push edx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetc]
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x43394e
mov eax, dword [esi + 0x14]
lea edi, [ebx*4]
mov edx, edi
cmp eax, dword [esi + 0x18]
jae 0x433914
mov cl, byte [eax]
inc eax
mov dword [esi + 0x14], eax
mov byte [ebp + edi - 0x404], cl
jmp 0x43391c
mov byte [ebp + edi - 0x404], 0
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x433933
mov cl, byte [eax]
inc eax
mov dword [esi + 0x14], eax
mov byte [ebp + edx - 0x403], cl
jmp 0x43393b
mov byte [ebp + edx - 0x403], 0
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x43394c
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x43394e
xor ecx, ecx
inc ebx
mov byte [ebp + edi - 0x402], cl
mov byte [ebp + edi - 0x401], 0xff
cmp ebx, dword [ebp - 0x13f8]
jb 0x433870
push esi
call fcn.00431130
push esi
call fcn.00431130
add esp, 8
mov dword [ebp - 0x13f4], 0
jmp 0x4332e0
mov al, byte [ebp - 0x1402]
mov ah, byte [ebp - 0x1403]
cmp byte [ecx], bl
jne 0x4339a6
cmp byte [ecx + 1], ah
jne 0x4339a6
cmp byte [ecx + 2], al
jne 0x4339a6
mov byte [ecx + 3], 0
add ecx, 4
sub edx, 1
jne 0x433994
mov ebx, dword [ebp + 0x10]
mov al, byte [ebp - 0x13ed]
test al, al
je 0x433ac3
movzx edi, al
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
cmp ebx, 3
jl 0x4339d2
mov dword [esi + 0xc], ebx
mov edi, ebx
mov ebx, dword [esi + 4]
imul ebx, dword [esi]
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x13f4], eax
mov eax, edi
imul eax, ebx
push eax
call dword [ebp - 0x13f8]
add esp, 4
mov dword [ebp - 0x13fc], eax
test eax, eax
jne 0x433a17
pop edi
pop esi
mov dword [0x73e710], 0x71c0f8
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
cmp edi, 3
jne 0x433a5c
xor edi, edi
test ebx, ebx
je 0x433aaa
mov esi, dword [ebp - 0x13f4]
lea edx, [eax + 2]
nop
movzx ecx, byte [edi + esi]
lea edx, [edx + 3]
inc edi
mov al, byte [ebp + ecx*4 - 0x404]
mov byte [edx - 5], al
mov al, byte [ebp + ecx*4 - 0x403]
mov byte [edx - 4], al
mov al, byte [ebp + ecx*4 - 0x402]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x433a30
jmp 0x433aa4
xor edi, edi
test ebx, ebx
je 0x433aaa
mov esi, dword [ebp - 0x13f4]
lea edx, [eax + 2]
nop dword [eax + eax]
movzx ecx, byte [edi + esi]
lea edx, [edx + 4]
inc edi
mov al, byte [ebp + ecx*4 - 0x404]
mov byte [edx - 6], al
mov al, byte [ebp + ecx*4 - 0x403]
mov byte [edx - 5], al
mov al, byte [ebp + ecx*4 - 0x402]
mov byte [edx - 4], al
mov al, byte [ebp + ecx*4 - 0x401]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x433a70
mov esi, dword [ebp - 0x1408]
push dword [esi + 0x24]
mov edi, dword [ebp - 0x1400]
call edi
mov eax, dword [ebp - 0x13fc]
add esp, 4
mov dword [esi + 0x24], eax
jmp 0x433ac9
mov edi, dword [ebp - 0x1400]
push dword [esi + 0x20]
call edi
add esp, 4
mov dword [esi + 0x20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x13d8]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
pop edi
mov dword [esi + 0x20], 0
xor eax, eax
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
movzx eax, al
pop edi
mov dword [esi + 8], eax
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov dword [0x73e710], 0x71c214
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov dword [0x73e710], 0x71c194
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov dword [0x73e710], 0x71c1f4
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov dword [0x73e710], 0x71c1d8
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
mov eax, ecx
mov byte [0x73d317], cl
shr eax, 0x18
mov byte [0x73d314], al
mov eax, ecx
shr eax, 0x10
mov byte [0x73d315], al
mov eax, ecx
pop edi
shr eax, 8
pop esi
mov byte [0x73d316], al
xor eax, eax
mov dword [0x73e710], 0x71c238
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
mov dword [esi + 8], 4
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret
mov dword [0x73e710], str.Not_a_PNG
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00442579
mov esp, ebp
pop ebp
ret