Function at 0x10026970
Capabilities:
Access peb ldr_data
Check for peb beingdebugged flag
Hash data with md5
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1005009b
push eax
mov dword fs:[0], esp
sub esp, 0x90
mov eax, dword [0x1006e3e8]
push ebx
push esi
push edi
cmp eax, 0xffffffff
jne 0x100269db
lea eax, [esp + 0x84]
push eax
push 0xd698
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
test eax, eax
jne 0x100269d1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x100269d1
mov dword [0x1006e3e8], 0x3a8
mov eax, 0x3a8
jmp 0x100269db
mov eax, 0xd698
mov dword [0x1006e3e8], eax
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x10]
push eax
mov edx, esi
call fcn.10004760
add esp, 4
mov dword [esp + 0xa4], 0
cmp dword [eax + 0x14], 8
jb 0x10026a00
mov eax, dword [eax]
push 0
push 0x8000
push eax
call dword [sym.imp.MSVCR120.dll_int___cdecl__wopen_wchar_t_const___int__int_]
add esp, 0xc
mov dword [esp + 0xa4], 0xffffffff
cmp dword [esp + 0x24], 8
mov edi, eax
jb 0x10026a32
push dword [esp + 0x10]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor eax, eax
mov dword [esp + 0x24], 7
mov dword [esp + 0x20], 0
mov word [esp + 0x10], ax
test edi, edi
jg 0x10026a6e
push esi
call dword [sym.imp.MSVCR120.dll_perror]
add esp, 4
xor al, al
mov ecx, dword [esp + 0x9c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x2000
call fcn.10013326
mov esi, eax
add esp, 4
test esi, esi
jne 0x10026aad
push str.buffer
call dword [sym.imp.MSVCR120.dll_perror]
push edi
call dword [sym.imp.MSVCR120.dll__close]
add esp, 8
xor al, al
mov ecx, dword [esp + 0x9c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [sym.imp.MSVCR120.dll__read]
push 0x2000
push esi
push edi
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x34], 0x67452301
mov dword [esp + 0x38], 0xefcdab89
mov dword [esp + 0x3c], 0x98badcfe
mov dword [esp + 0x40], 0x10325476
call ebx
add esp, 0xc
test eax, eax
je 0x10026b15
js 0x10026bd1
push eax
mov edx, esi
lea ecx, [esp + 0x2c]
call fcn.10027450
push 0x2000
push esi
push edi
call ebx
add esp, 0x10
test eax, eax
jne 0x10026af3
push edi
call dword [sym.imp.MSVCR120.dll__close]
push 0x10
call fcn.10013326
mov edi, eax
lea edx, [esp + 0x30]
mov ecx, edi
call fcn.10027390
mov cl, byte [edi]
movzx eax, byte [edi + 3]
mov byte [edi], al
mov byte [edi + 3], cl
mov cl, byte [edi + 1]
movzx eax, byte [edi + 2]
mov byte [edi + 1], al
mov byte [edi + 2], cl
mov cl, byte [edi + 4]
movzx eax, byte [edi + 7]
mov byte [edi + 4], al
mov byte [edi + 7], cl
mov cl, byte [edi + 5]
movzx eax, byte [edi + 6]
mov byte [edi + 5], al
mov byte [edi + 6], cl
mov cl, byte [edi + 8]
movzx eax, byte [edi + 0xb]
mov byte [edi + 8], al
mov byte [edi + 0xb], cl
mov cl, byte [edi + 9]
movzx eax, byte [edi + 0xa]
mov byte [edi + 9], al
mov byte [edi + 0xa], cl
mov cl, byte [edi + 0xc]
movzx eax, byte [edi + 0xf]
mov byte [edi + 0xc], al
mov byte [edi + 0xf], cl
movzx eax, byte [edi + 0xe]
mov cl, byte [edi + 0xd]
mov byte [edi + 0xd], al
mov eax, dword [ebp + 0xc]
mov byte [edi + 0xe], cl
mov ecx, dword [edi + 4]
xor ecx, dword [edi]
mov dword [eax], ecx
mov ecx, dword [edi + 0xc]
mov eax, dword [ebp + 0x10]
xor ecx, dword [edi + 8]
push esi
mov esi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete___void__]
mov dword [eax], ecx
call esi
push edi
call esi
mov ecx, dword [esp + 0xac]
add esp, 0x10
mov al, 1
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.read
jmp 0x10026a86