Function at 0x10017990
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x14
push ebx
xor ebx, ebx
push edi
mov edi, dword [esp + 0x24]
mov eax, 0x5a
mov dword [esp + 8], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
cmp edi, ebx
jne 0x100179b8
pop edi
xor eax, eax
pop ebx
add esp, 0x14
ret
push ebp
mov ebp, dword [esp + 0x2c]
push esi
cmp ebp, ebx
je 0x10017d20
mov esi, dword [esp + 0x34]
cmp esi, ebx
je 0x10017d20
push 8
push str.sha256__
push edi
call dword [sym.imp.MSVCR100.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x10017b90
mov eax, dword [0x100a3014]
cmp dword [eax + 0x5c], ebx
je 0x10017ba8
push 0x20
call dword [section..data]
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10017a9f
mov ecx, dword [0x100a3014]
mov edx, dword [ecx + 0x5c]
push 0x20
push ebx
push esi
push ebp
call edx
add esp, 0x10
test eax, eax
jne 0x10017d20
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x14]
push ecx
push 0x20
push ebx
call fcn.10049380
push ebx
mov esi, eax
call dword [0x100a3004]
add esp, 0x14
test esi, esi
je 0x10017a55
mov eax, esi
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x14
ret
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
push edx
push str._public_key_hash:_sha256___s
push eax
call fcn.1001ccc0
mov eax, edi
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10017a71
sub eax, edx
lea esi, [eax + 1]
push esi
call dword [section..data]
mov edi, eax
add esp, 4
mov dword [esp + 0x20], edi
test edi, edi
jne 0x10017aac
mov ecx, dword [esp + 0x10]
push ecx
call dword [0x100a3004]
add esp, 4
pop esi
pop ebp
pop edi
mov eax, 0x1b
pop ebx
add esp, 0x14
ret
mov edx, dword [esp + 0x2c]
push esi
push edx
push edi
call sub.MSVCR100.dll_memcpy
add esp, 0xc
mov esi, edi
lea ecx, [ecx]
push str._sha256__
push esi
call dword [sym.imp.MSVCR100.dll_strstr]
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x10017ad9
mov byte [ebp], 0
lea edx, [esi + 8]
mov ecx, edx
lea esi, [ecx + 1]
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x10017ae1
sub ecx, esi
mov edi, ecx
mov ecx, dword [esp + 0x1c]
cmp ecx, edi
jne 0x10017b38
mov esi, dword [esp + 0x10]
cmp ecx, 4
jb 0x10017b14
lea ecx, [ecx]
mov eax, dword [esi]
cmp eax, dword [edx]
jne 0x10017b38
sub ecx, 4
add edx, 4
add esi, 4
cmp ecx, 4
jae 0x10017b00
test ecx, ecx
je 0x10017b5b
mov al, byte [edx]
cmp al, byte [esi]
jne 0x10017b38
cmp ecx, 1
jbe 0x10017b5b
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x10017b38
cmp ecx, 2
jbe 0x10017b5b
mov cl, byte [edx + 2]
cmp cl, byte [esi + 2]
je 0x10017b5b
test ebp, ebp
je 0x10017b63
push str.sha256__
push ebp
mov byte [ebp], 0x3b
call dword [sym.imp.MSVCR100.dll_strstr]
mov esi, eax
add esp, 8
test esi, esi
jne 0x10017ac0
jmp 0x10017b63
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x10]
push edx
call dword [0x100a3004]
mov eax, dword [esp + 0x24]
push eax
mov dword [esp + 0x18], 0
call dword [0x100a3004]
mov eax, dword [esp + 0x1c]
add esp, 8
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x14
ret
push 0x100832b8
push edi
call sub.MSVCR100.dll_fopen
mov ebx, eax
add esp, 8
mov dword [esp + 0x2c], ebx
test ebx, ebx
jne 0x10017bb5
pop esi
pop ebp
pop edi
mov eax, 0x5a
pop ebx
add esp, 0x14
ret
mov edi, dword [sym.imp.MSVCR100.dll_fseek]
push 2
push 0
push ebx
call edi
add esp, 0xc
test eax, eax
jne 0x10017cf0
push ebx
call dword [sym.imp.MSVCR100.dll_ftell]
mov ecx, dword [esp + 0x30]
push 0
push 0
push ecx
mov ebx, eax
call edi
add esp, 0x10
test eax, eax
jne 0x10017cf0
cmp ebx, 0x100000
ja 0x10017cf0
mov eax, ebx
cdq
push edx
push eax
call fcn.1001c090
mov ebx, eax
add esp, 8
cmp esi, ebx
ja 0x10017cf0
lea edx, [ebx + 1]
push edx
call dword [section..data]
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x10017cf0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
push eax
push 1
push ebx
push ecx
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x10017cf0
cmp esi, ebx
jne 0x10017c7a
mov ecx, dword [esp + 0x10]
mov eax, esi
mov edi, ebp
cmp esi, 4
jb 0x10017cc4
jmp 0x10017c60
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x10017cf0
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x10017c60
jmp 0x10017cc4
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
mov byte [ebx + eax], 0
push edx
mov ebx, eax
call fcn.100178c0
add esp, 8
test eax, eax
jne 0x10017cf0
cmp esi, dword [esp + 0x20]
jne 0x10017cf0
mov ecx, dword [esp + 0x18]
mov eax, esi
mov edi, ebp
cmp esi, 4
jb 0x10017cc4
lea ecx, [ecx]
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x10017cf0
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x10017cb0
test eax, eax
je 0x10017ce8
mov dl, byte [ecx]
cmp dl, byte [edi]
jne 0x10017cf0
cmp eax, 1
jbe 0x10017ce8
mov dl, byte [ecx + 1]
cmp dl, byte [edi + 1]
jne 0x10017cf0
cmp eax, 2
jbe 0x10017ce8
mov al, byte [ecx + 2]
cmp al, byte [edi + 2]
jne 0x10017cf0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x10]
push ecx
call dword [0x100a3004]
mov edx, dword [esp + 0x1c]
push edx
call dword [0x100a3004]
mov eax, dword [esp + 0x34]
push eax
mov dword [esp + 0x24], 0
call dword [sym.imp.MSVCR100.dll_fclose]
mov eax, dword [esp + 0x20]
add esp, 0xc
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x14
ret