Function at 0x469c90
Capabilities:
Hash data using sha1
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4094
call fcn.004cb9c0
mov eax, dword [0x56e754]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x408c], edx
mov dword [ebp - 0x4090], ecx
mov dword [ebp - 0x4084], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
test eax, eax
je 0x469d0c
mov dword [ebp - 0x4060], 0x67452301
mov dword [ebp - 0x405c], 0xefcdab89
mov dword [ebp - 0x4058], 0x98badcfe
mov dword [ebp - 0x4054], 0x10325476
mov dword [ebp - 0x4050], 0xc3d2e1f0
mov dword [ebp - 0x4048], 0
mov dword [ebp - 0x404c], 0
add dword [esi], 8
mov eax, dword [esi]
mov cl, byte [eax]
lea edx, [eax + 1]
mov dword [esi], edx
test cl, cl
jns 0x469d3a
mov al, byte [edx]
inc edx
mov dword [esi], edx
test al, al
jns 0x469d3a
mov al, byte [edx]
inc edx
mov dword [esi], edx
test al, al
jns 0x469d3a
mov al, byte [edx]
inc edx
mov dword [esi], edx
test al, al
jns 0x469d3a
inc edx
mov dword [esi], edx
mov al, byte [edx]
lea ecx, [edx + 1]
mov dword [esi], ecx
test al, al
jns 0x469d63
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469d63
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469d63
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469d63
inc ecx
mov dword [esi], ecx
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469d8a
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469d8a
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469d8a
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469d8a
inc ecx
mov dword [esi], ecx
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469db1
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469db1
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469db1
mov al, byte [ecx]
inc ecx
mov dword [esi], ecx
test al, al
jns 0x469db1
inc ecx
mov dword [esi], ecx
mov al, byte [ecx]
lea edx, [ecx + 1]
movzx ebx, al
and ebx, 0x7f
mov dword [esi], edx
test al, al
jns 0x469e0d
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [esi], edx
shl eax, 7
or ebx, eax
test cl, cl
jns 0x469e0d
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [esi], edx
shl eax, 0xe
or ebx, eax
test cl, cl
jns 0x469e0d
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [esi], edx
shl eax, 0x15
or ebx, eax
test cl, cl
jns 0x469e0d
mov cl, byte [edx]
lea eax, [edx + 1]
mov dword [esi], eax
movzx eax, cl
shl eax, 0x1c
or ebx, eax
push 4
push ebx
call fcn.004effff
push 4
push ebx
mov dword [ebp - 0x407c], eax
call fcn.004effff
add esp, 0x10
mov dword [ebp - 0x406c], eax
mov dword [ebp - 0x4074], 0
test ebx, ebx
je 0x469edd
nop
mov ecx, dword [esi]
mov dl, byte [ecx]
lea eax, [ecx + 1]
movzx edi, dl
and edi, 0x7f
mov dword [esi], eax
test dl, dl
jns 0x469ea0
mov cl, byte [eax]
lea edx, [eax + 1]
movzx eax, cl
and eax, 0x7f
mov dword [esi], edx
shl eax, 7
or edi, eax
test cl, cl
jns 0x469ea0
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [esi], edx
shl eax, 0xe
or edi, eax
test cl, cl
jns 0x469ea0
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [esi], edx
shl eax, 0x15
or edi, eax
test cl, cl
jns 0x469ea0
mov cl, byte [edx]
lea eax, [edx + 1]
mov dword [esi], eax
movzx eax, cl
shl eax, 0x1c
or edi, eax
mov ecx, dword [ebp - 0x4074]
mov edx, dword [ebp - 0x407c]
mov dword [edx + ecx*4], edi
inc ecx
mov dword [ebp - 0x4074], ecx
cmp ecx, ebx
jb 0x469e40
mov edi, dword [ebp - 0x406c]
sub edi, edx
mov ecx, dword [esi]
lea edx, [edx + 4]
mov eax, dword [edx - 4]
add eax, ecx
mov dword [edi + edx - 4], ecx
mov dword [esi], eax
sub ebx, 1
jne 0x469ec2
mov eax, dword [ebp - 0x406c]
mov ecx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ebp - 0x4068], ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x4074], eax
mov al, byte [edi]
inc edi
movzx esi, al
and esi, 0x7f
mov dword [ebp - 0x4064], ebx
mov dword [ebp - 0x4088], ecx
test al, al
jns 0x469f54
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 7
or esi, eax
test cl, cl
jns 0x469f54
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 0xe
or esi, eax
test cl, cl
jns 0x469f54
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 0x15
or esi, eax
test cl, cl
jns 0x469f54
mov al, byte [edi]
inc edi
movzx eax, al
shl eax, 0x1c
or esi, eax
mov eax, ebx
mov dword [ebp - 0x4080], 0
mov dword [ebp - 0x4094], eax
cmp edx, eax
jae 0x46a2ac
nop
mov al, byte [edx]
inc edx
movzx ebx, al
and ebx, 0x7f
mov dword [ebp - 0x406c], edx
mov dword [ebp - 0x4070], ebx
test al, al
jns 0x469fe8
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [ebp - 0x406c], edx
shl eax, 7
or ebx, eax
test cl, cl
jns 0x469fe2
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [ebp - 0x406c], edx
shl eax, 0xe
or ebx, eax
test cl, cl
jns 0x469fe2
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [ebp - 0x406c], edx
shl eax, 0x15
or ebx, eax
test cl, cl
jns 0x469fe2
mov al, byte [edx]
inc edx
movzx eax, al
shl eax, 0x1c
mov dword [ebp - 0x406c], edx
or ebx, eax
mov dword [ebp - 0x4070], ebx
mov edx, dword [ebp - 0x4064]
mov al, byte [edx]
inc edx
mov dword [ebp - 0x4064], edx
movzx edx, al
and edx, 0x7f
mov dword [ebp - 0x4078], edx
test al, al
jns 0x46a094
mov eax, dword [ebp - 0x4064]
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x4064], eax
movzx eax, cl
and eax, 0x7f
shl eax, 7
or edx, eax
mov dword [ebp - 0x4078], edx
test cl, cl
jns 0x46a094
mov eax, dword [ebp - 0x4064]
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x4064], eax
movzx eax, cl
and eax, 0x7f
shl eax, 0xe
or edx, eax
mov dword [ebp - 0x4078], edx
test cl, cl
jns 0x46a094
mov eax, dword [ebp - 0x4064]
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x4064], eax
movzx eax, cl
and eax, 0x7f
shl eax, 0x15
or edx, eax
mov dword [ebp - 0x4078], edx
test cl, cl
jns 0x46a094
mov ecx, dword [ebp - 0x4064]
mov al, byte [ecx]
inc ecx
movzx eax, al
shl eax, 0x1c
or edx, eax
mov dword [ebp - 0x4064], ecx
mov dword [ebp - 0x4078], edx
mov ecx, dword [ebp - 0x4068]
mov al, byte [ecx]
inc ecx
movzx edx, al
and edx, 0x7f
mov dword [ebp - 0x4068], ecx
test al, al
jns 0x46a117
mov cl, byte [ecx]
inc dword [ebp - 0x4068]
movzx eax, cl
and eax, 0x7f
shl eax, 7
or edx, eax
test cl, cl
jns 0x46a117
mov eax, dword [ebp - 0x4068]
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x4068], eax
movzx eax, cl
and eax, 0x7f
shl eax, 0xe
or edx, eax
test cl, cl
jns 0x46a117
mov eax, dword [ebp - 0x4068]
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x4068], eax
movzx eax, cl
and eax, 0x7f
shl eax, 0x15
or edx, eax
test cl, cl
jns 0x46a117
mov ecx, dword [ebp - 0x4068]
mov al, byte [ecx]
inc ecx
movzx eax, al
shl eax, 0x1c
mov dword [ebp - 0x4068], ecx
or edx, eax
mov eax, edx
shr eax, 1
test dl, 1
je 0x46a122
not eax
mov dword [ebp - 0x407c], eax
test ebx, ebx
je 0x46a235
mov eax, dword [ebp - 0x4070]
mov ebx, 0x4000
cmp eax, ebx
push 0
cmovb ebx, eax
lea eax, [ebp - 0x4080]
push eax
push ebx
lea eax, [ebp - 0x4004]
push eax
push dword [ebp - 0x4090]
call dword [sym.imp.KERNEL32.dll_ReadFile]
xor edx, edx
test ebx, ebx
je 0x46a1e6
test esi, esi
je 0x46a17c
mov eax, ebx
mov ecx, esi
sub eax, edx
cmp esi, eax
cmovae ecx, eax
add edx, ecx
sub esi, ecx
jmp 0x46a1e2
mov ecx, dword [ebp - 0x4088]
movzx eax, byte [ecx]
inc ecx
add byte [ebp + edx - 0x4004], al
inc edx
mov al, byte [edi]
inc edi
movzx esi, al
and esi, 0x7f
mov dword [ebp - 0x4088], ecx
test al, al
jns 0x46a1e2
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 7
or esi, eax
test cl, cl
jns 0x46a1e2
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 0xe
or esi, eax
test cl, cl
jns 0x46a1e2
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 0x15
or esi, eax
test cl, cl
jns 0x46a1e2
mov al, byte [edi]
inc edi
movzx eax, al
shl eax, 0x1c
or esi, eax
cmp edx, ebx
jb 0x46a167
push 0
lea eax, [ebp - 0x4080]
push eax
push ebx
lea eax, [ebp - 0x4004]
push eax
push dword [ebp - 0x408c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [ebp - 0x4084], 0
je 0x46a221
push ebx
lea edx, [ebp - 0x4004]
lea ecx, [ebp - 0x4060]
call fcn.00441850
add esp, 4
mov eax, dword [ebp - 0x4070]
sub eax, ebx
mov dword [ebp - 0x4070], eax
jne 0x46a136
mov ebx, dword [ebp - 0x4078]
test ebx, ebx
je 0x46a27f
push 0
lea eax, [ebp - 0x4080]
push eax
push ebx
push dword [ebp - 0x4074]
push dword [ebp - 0x408c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [ebp - 0x4084], 0
je 0x46a279
mov edx, dword [ebp - 0x4074]
lea ecx, [ebp - 0x4060]
push ebx
call fcn.00441850
add esp, 4
add dword [ebp - 0x4074], ebx
mov eax, dword [ebp - 0x407c]
test eax, eax
je 0x46a29a
push 1
push 0
push eax
push dword [ebp - 0x4090]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edx, dword [ebp - 0x406c]
cmp edx, dword [ebp - 0x4094]
jb 0x469f70
mov eax, dword [ebp - 0x4084]
pop edi
pop esi
pop ebx
test eax, eax
je 0x46a2ca
push ecx
mov edx, eax
lea ecx, [ebp - 0x4060]
call fcn.00441910
add esp, 4
mov ecx, dword [ebp - 4]
mov al, 1
xor ecx, ebp
call fcn.004ca771
mov esp, ebp
pop ebp
ret