Function at 0x96a780
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
xor eax, eax
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], 0x5a
cmp ebx, eax
jne 0x96a7a2
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push edi
mov edi, dword [ebp + 0x10]
cmp edi, eax
je 0x96aaca
mov esi, dword [ebp + 0x14]
cmp esi, eax
je 0x96aaca
push 8
push str.sha256__
push ebx
call fcn.00960618
add esp, 0xc
test eax, eax
jne 0x96a968
mov eax, dword [0x9f1354]
cmp dword [eax + 0x5c], 0
je 0x96aaca
push 0x20
call dword [0x9f133c]
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x96a883
mov ecx, dword [0x9f1354]
mov edx, dword [ecx + 0x5c]
push 0x20
push ebx
push esi
push edi
call edx
add esp, 0x10
test eax, eax
jne 0x96aacf
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
push 0x20
push ebx
call fcn.00983d80
push ebx
mov esi, eax
call dword [0x9f1340]
add esp, 0x14
test esi, esi
je 0x96a83a
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
push edx
push str._public_key_hash:_sha256___s
push eax
call fcn.00973050
mov ebx, dword [ebp + 0xc]
mov eax, ebx
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x96a857
sub eax, edx
lea esi, [eax + 1]
push esi
call dword [0x9f133c]
mov edi, eax
add esp, 4
mov dword [ebp + 0xc], edi
test edi, edi
jne 0x96a88f
mov ecx, dword [ebp - 4]
push ecx
call dword [0x9f1340]
add esp, 4
pop edi
pop esi
mov eax, 0x1b
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push ebx
push edi
call fcn.00951c20
add esp, 0xc
mov esi, edi
lea esp, [esp]
push str._sha256__
push esi
call fcn.00952b00
mov edi, eax
add esp, 8
test edi, edi
je 0x96a8b7
mov byte [edi], 0
lea edx, [esi + 8]
mov ecx, edx
lea esi, [ecx + 1]
nop
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x96a8c0
sub ecx, esi
mov ebx, ecx
mov ecx, dword [ebp - 0x10]
cmp ecx, ebx
jne 0x96a918
mov esi, dword [ebp - 4]
cmp ecx, 4
jb 0x96a8f4
lea ebx, [ebx]
mov eax, dword [esi]
cmp eax, dword [edx]
jne 0x96a918
sub ecx, 4
add edx, 4
add esi, 4
cmp ecx, 4
jae 0x96a8e0
test ecx, ecx
je 0x96a939
mov al, byte [edx]
cmp al, byte [esi]
jne 0x96a918
cmp ecx, 1
jbe 0x96a939
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x96a918
cmp ecx, 2
jbe 0x96a939
mov cl, byte [edx + 2]
cmp cl, byte [esi + 2]
je 0x96a939
test edi, edi
je 0x96a940
push str.sha256__
push edi
mov byte [edi], 0x3b
call fcn.00952b00
mov esi, eax
add esp, 8
test esi, esi
jne 0x96a8a0
jmp 0x96a940
mov dword [ebp - 8], 0
mov edx, dword [ebp - 4]
push edx
call dword [0x9f1340]
mov eax, dword [ebp + 0xc]
push eax
mov dword [ebp - 4], 0
call dword [0x9f1340]
mov eax, dword [ebp - 8]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x9d95f8
push ebx
call fcn.00983ef0
mov ebx, eax
add esp, 8
mov dword [ebp + 0xc], ebx
test ebx, ebx
je 0x96aaca
push 2
push 0
push ebx
call fcn.009b0f41
add esp, 0xc
test eax, eax
jne 0x96aa99
push ebx
call fcn.009b0e52
push 0
push 0
push ebx
mov edi, eax
call fcn.009b0f41
add esp, 0x10
test eax, eax
jne 0x96aa99
cmp edi, 0x100000
ja 0x96aa99
mov eax, edi
cdq
push edx
push eax
call fcn.009753d0
mov edi, eax
add esp, 8
cmp esi, edi
ja 0x96aa99
lea ecx, [edi + 1]
push ecx
call dword [0x9f133c]
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x96aa9c
mov edx, dword [ebp + 0xc]
push edx
push 1
push edi
push ebx
call fcn.009b09d5
add esp, 0x10
cmp eax, 1
jne 0x96aa9c
cmp esi, edi
jne 0x96aa59
mov edi, dword [ebp + 0x10]
mov eax, esi
mov ecx, ebx
cmp esi, 4
jb 0x96aa2c
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x96aa9c
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x96aa18
test eax, eax
je 0x96aa50
mov dl, byte [ecx]
cmp dl, byte [edi]
jne 0x96aa9c
cmp eax, 1
jbe 0x96aa50
mov dl, byte [ecx + 1]
cmp dl, byte [edi + 1]
jne 0x96aa9c
cmp eax, 2
jbe 0x96aa50
mov al, byte [ecx + 2]
cmp al, byte [edi + 2]
jne 0x96aa9c
mov dword [ebp - 8], 0
jmp 0x96aa9c
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0xc]
push edx
mov byte [edi + ebx], 0
call fcn.0096a6b0
add esp, 8
test eax, eax
jne 0x96aa9c
cmp esi, dword [ebp - 0x10]
jne 0x96aa9c
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp + 0x10]
mov eax, esi
cmp esi, 4
jb 0x96aa2c
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x96aa9c
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x96aa83
jmp 0x96aa2c
mov ebx, dword [ebp - 4]
push ebx
call dword [0x9f1340]
mov ecx, dword [ebp - 0xc]
push ecx
call dword [0x9f1340]
mov edx, dword [ebp + 0xc]
push edx
mov dword [ebp - 0xc], 0
call fcn.009642f4
mov eax, dword [ebp - 8]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x5a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret