Function at 0x100116c0
Capabilities:
Read file on windows

Disassembly:
push ebp
push esi
xor ebp, ebp
xor esi, esi
cmp dword [0x10116f38], ebp
jne 0x100116f1
push 0x6d
push str..cryptodesenc_read.c
push 0x4004
call sym.LIBEAY32.dll_CRYPTO_malloc
add esp, 0xc
mov dword [0x10116f38], eax
cmp eax, ebp
jne 0x100116f1
pop esi
or eax, 0xffffffff
pop ebp
ret
cmp dword [0x10116f28], ebp
jne 0x10011716
push 0x72
push str..cryptodesenc_read.c
push 0x4004
call sym.LIBEAY32.dll_CRYPTO_malloc
add esp, 0xc
mov dword [0x10116f28], eax
cmp eax, ebp
je 0x100116eb
mov eax, dword [0x10116f2c]
cmp eax, ebp
jne 0x1001173c
push 0x77
push str..cryptodesenc_read.c
push 0x4004
call sym.LIBEAY32.dll_CRYPTO_malloc
add esp, 0xc
mov dword [0x10116f2c], eax
cmp eax, ebp
je 0x100116eb
push ebx
push edi
mov edi, dword [0x10116f34]
cmp edi, ebp
je 0x100117a8
mov esi, dword [esp + 0x1c]
cmp edi, esi
jge 0x1001177a
mov ecx, dword [0x10116f30]
mov edx, dword [esp + 0x18]
push edi
add ecx, eax
push ecx
push edx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov eax, edi
pop edi
pop ebx
pop esi
mov dword [0x10116f34], ebp
mov dword [0x10116f30], ebp
pop ebp
ret
mov ebx, dword [0x10116f30]
mov ecx, dword [esp + 0x18]
push esi
add eax, ebx
push eax
push ecx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
add ebx, esi
sub edi, esi
mov dword [0x10116f34], edi
pop edi
mov dword [0x10116f30], ebx
pop ebx
mov eax, esi
pop esi
pop ebp
ret
mov edi, 0x4000
cmp dword [esp + 0x1c], edi
jle 0x100117b7
mov dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x14]
jmp 0x100117c0
mov eax, dword [0x10116f28]
mov edx, 4
sub edx, esi
push edx
add eax, esi
push eax
push ebx
call dword [sym.imp.MSVCR90.dll__read]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100117f1
call dword [sym.imp.MSVCR90.dll__errno]
cmp dword [eax], 4
je 0x100117f7
pop edi
pop ebx
pop esi
xor eax, eax
pop ebp
ret
cmp eax, ebp
jle 0x100117ea
add esi, eax
cmp esi, 4
jl 0x100117c0
mov ecx, dword [0x10116f28]
movzx edx, byte [ecx + 1]
movzx esi, byte [ecx]
lea eax, [ecx + 1]
shl esi, 0x18
shl edx, 0x10
or esi, edx
movzx edx, byte [eax + 1]
inc eax
movzx eax, byte [eax + 1]
shl edx, 8
or esi, edx
or esi, eax
cmp esi, edi
ja 0x100119a6
cmp esi, 8
jge 0x10011838
mov ebp, 8
jmp 0x1001184c
lea eax, [esi + 7]
cdq
and edx, 7
add eax, edx
mov ebp, eax
sar ebp, 3
add ebp, ebp
add ebp, ebp
add ebp, ebp
xor edi, edi
test ebp, ebp
jle 0x1001188e
mov edx, ebp
sub edx, edi
push edx
add ecx, edi
push ecx
push ebx
call dword [sym.imp.MSVCR90.dll__read]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1001187a
call dword [sym.imp.MSVCR90.dll__errno]
cmp dword [eax], 4
jne 0x100117ea
jmp 0x10011884
test eax, eax
jle 0x100117ea
add edi, eax
cmp edi, ebp
mov ecx, dword [0x10116f28]
jl 0x10011852
mov edi, dword [esp + 0x1c]
cmp edi, esi
push 0
jge 0x10011900
test byte [0x10111128], 1
je 0x100118ba
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [0x10116f2c]
push edx
push esi
push eax
push ecx
call sym.LIBEAY32.dll_DES_pcbc_encrypt
jmp 0x100118d2
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
mov edx, dword [0x10116f2c]
push eax
push esi
push edx
push ecx
call sym.LIBEAY32.dll_DES_cbc_encrypt
mov eax, dword [0x10116f2c]
mov ecx, dword [esp + 0x30]
add esp, 0x18
push edi
push eax
push ecx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
sub esi, edi
mov dword [0x10116f34], esi
mov esi, edi
mov dword [0x10116f30], edi
pop edi
pop ebx
mov eax, esi
pop esi
pop ebp
ret
cmp edi, ebp
jge 0x1001195d
test byte [0x10111128], 1
je 0x10011927
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
mov edx, dword [0x10116f38]
push eax
push esi
push edx
push ecx
call sym.LIBEAY32.dll_DES_pcbc_encrypt
jmp 0x1001193e
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [0x10116f38]
push edx
push esi
push eax
push ecx
call sym.LIBEAY32.dll_DES_cbc_encrypt
mov ecx, dword [0x10116f38]
mov edx, dword [esp + 0x30]
add esp, 0x18
push esi
push ecx
push edx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
pop edi
pop ebx
mov eax, esi
pop esi
pop ebp
ret
test byte [0x10111128], 1
je 0x10011986
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x20]
push edx
push esi
push eax
push ecx
call sym.LIBEAY32.dll_DES_pcbc_encrypt
add esp, 0x18
pop edi
pop ebx
mov eax, esi
pop esi
pop ebp
ret
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x20]
push eax
push esi
push edx
push ecx
call sym.LIBEAY32.dll_DES_cbc_encrypt
add esp, 0x18
pop edi
pop ebx
mov eax, esi
pop esi
pop ebp
ret
pop edi
pop ebx
pop esi
or eax, 0xffffffff
pop ebp
ret