Function at 0x40f330
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
xor eax, eax
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], 0x5a
cmp edi, eax
jne 0x40f352
pop edi
mov esp, ebp
pop ebp
ret
push esi
cmp dword [ebp + 0x10], eax
je 0x40f6a0
mov esi, dword [ebp + 0x14]
cmp esi, eax
je 0x40f6a0
push ebx
push 8
push str.sha256__
push edi
call fcn.00556a00
add esp, 0xc
test eax, eax
jne 0x40f4f8
push 0x20
call dword [0x5e205c]
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x40f41c
mov eax, dword [ebp + 0x10]
push 0x20
push ebx
push esi
push eax
call fcn.0042ce30
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 4]
push edx
push 0x20
push ebx
push edi
call fcn.0042e660
push ebx
mov esi, eax
call dword [0x5e2060]
add esp, 0x28
test esi, esi
je 0x40f3cf
pop ebx
mov eax, esi
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
push eax
push str._t_public_key_hash:_sha256___s_n
push edi
call fcn.0041a590
mov ebx, dword [ebp + 0xc]
mov eax, ebx
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f3f0
sub eax, edx
lea esi, [eax + 1]
push esi
call dword [0x5e205c]
mov edi, eax
add esp, 4
mov dword [ebp + 0xc], edi
test edi, edi
jne 0x40f428
mov ecx, dword [ebp - 4]
push ecx
call dword [0x5e2060]
add esp, 4
pop ebx
pop esi
mov eax, 0x1b
pop edi
mov esp, ebp
pop ebp
ret
push esi
push ebx
push edi
call fcn.0054fa80
add esp, 0xc
mov esi, edi
push str._sha256__
push esi
call fcn.00556790
mov edi, eax
add esp, 8
test edi, edi
je 0x40f44c
mov byte [edi], 0
lea ecx, [esi + 8]
lea edx, [ecx + 1]
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x40f452
sub ecx, edx
mov ebx, ecx
mov ecx, dword [ebp - 0x14]
cmp ecx, ebx
jne 0x40f4a8
lea edx, [esi + 8]
mov esi, dword [ebp - 4]
cmp ecx, 4
jb 0x40f484
nop
mov eax, dword [esi]
cmp eax, dword [edx]
jne 0x40f4a8
sub ecx, 4
add edx, 4
add esi, 4
cmp ecx, 4
jae 0x40f470
test ecx, ecx
je 0x40f4c9
mov al, byte [edx]
cmp al, byte [esi]
jne 0x40f4a8
cmp ecx, 1
jbe 0x40f4c9
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x40f4a8
cmp ecx, 2
jbe 0x40f4c9
mov cl, byte [edx + 2]
cmp cl, byte [esi + 2]
je 0x40f4c9
test edi, edi
je 0x40f4d0
push str.sha256__
push edi
mov byte [edi], 0x3b
call fcn.00556790
mov esi, eax
add esp, 8
test esi, esi
jne 0x40f435
jmp 0x40f4d0
mov dword [ebp - 8], 0
mov edx, dword [ebp - 4]
push edx
call dword [0x5e2060]
mov eax, dword [ebp + 0xc]
push eax
mov dword [ebp - 4], 0
call dword [0x5e2060]
mov eax, dword [ebp - 8]
add esp, 8
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push 0x58b428
push edi
call fcn.00551fb2
mov ebx, eax
add esp, 8
mov dword [ebp + 0xc], ebx
test ebx, ebx
jne 0x40f519
lea eax, [ebx + 0x5a]
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push 2
push 0
push ebx
call fcn.00555b33
add esp, 0xc
test eax, eax
jne 0x40f672
push ebx
call fcn.00555a38
push 0
push 0
push ebx
mov edi, eax
call fcn.00555b33
add esp, 0x10
test eax, eax
jne 0x40f672
cmp edi, 0x100000
ja 0x40f672
mov eax, edi
cdq
push edx
push eax
call fcn.004ee860
mov edi, eax
add esp, 8
cmp esi, edi
ja 0x40f672
lea ecx, [edi + 1]
push ecx
call dword [0x5e205c]
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
je 0x40f672
push ebx
push 1
push edi
push eax
call fcn.005521d1
add esp, 0x10
cmp eax, 1
jne 0x40f672
cmp esi, edi
jne 0x40f5fd
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x10]
cmp esi, 4
jb 0x40f5c8
jmp 0x40f5b0
mov edx, dword [ecx]
cmp edx, dword [eax]
jne 0x40f672
sub esi, 4
add eax, 4
add ecx, 4
cmp esi, 4
jae 0x40f5b0
test esi, esi
je 0x40f5f4
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f672
cmp esi, 1
jbe 0x40f5f4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f672
cmp esi, 2
jbe 0x40f5f4
mov al, byte [eax + 2]
cmp al, byte [ecx + 2]
jne 0x40f672
mov dword [ebp - 8], 0
jmp 0x40f672
mov ebx, dword [ebp - 0xc]
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x10]
push edx
mov byte [edi + ebx], 0
call fcn.0040f260
add esp, 8
test eax, eax
jne 0x40f66f
cmp esi, dword [ebp - 0x18]
jne 0x40f66f
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x10]
mov eax, esi
cmp esi, 4
jb 0x40f644
lea ebx, [ebx]
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x40f66f
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x40f630
test eax, eax
je 0x40f668
mov dl, byte [ecx]
cmp dl, byte [edi]
jne 0x40f66f
cmp eax, 1
jbe 0x40f668
mov dl, byte [ecx + 1]
cmp dl, byte [edi + 1]
jne 0x40f66f
cmp eax, 2
jbe 0x40f668
mov al, byte [ecx + 2]
cmp al, byte [edi + 2]
jne 0x40f66f
mov dword [ebp - 8], 0
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xc]
push ecx
call dword [0x5e2060]
mov edx, dword [ebp - 0x10]
push edx
call dword [0x5e2060]
push ebx
mov dword [ebp - 0x10], 0
call fcn.00551e07
mov eax, dword [ebp - 8]
add esp, 0xc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
pop esi
mov eax, 0x5a
pop edi
mov esp, ebp
pop ebp
ret