Function at 0x448300
Capabilities:
Get file size
Hash data using sha1
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4747f0
mov eax, dword fs:[0]
push eax
mov eax, 0x40b8
call fcn.0046fc30
mov eax, dword [0x4d100c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x40c0], edx
mov dword [ebp - 0x40b8], ecx
mov esi, dword [ebp + 0x10]
xorps xmm0, xmm0
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 8]
movq qword [ebp - 0x4024], xmm0
mov dword [ebp - 0x401c], 0
mov dword [ebp - 0x40b4], esi
mov dword [ebp - 0x40c4], eax
mov dword [ebp - 0x4024], 0
mov dword [ebp - 0x4020], 0
mov dword [ebp - 0x401c], 0
cmp byte [ebp + 0x14], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x40b0], 0
je 0x448462
lea eax, [ebp - 0x4034]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x4483c7
mov eax, dword [ebp - 0x4030]
mov ebx, dword [ebp - 0x4034]
mov dword [ebp - 0x4030], eax
jmp 0x4483d0
or ebx, 0xffffffff
mov dword [ebp - 0x4030], ebx
mov eax, dword [ebp - 0x4020]
mov edx, eax
mov ecx, dword [ebp - 0x4024]
sub edx, ecx
mov dword [ebp - 0x40a0], eax
cmp ebx, edx
jae 0x4483ef
lea eax, [ebx + ecx]
jmp 0x44843b
jbe 0x448441
mov eax, dword [ebp - 0x401c]
sub eax, ecx
cmp ebx, eax
jbe 0x448412
push ecx
push ebx
lea ecx, [ebp - 0x4024]
call fcn.004221c0
mov ecx, dword [ebp - 0x4024]
jmp 0x448441
mov esi, ebx
sub esi, edx
push esi
push 0
push dword [ebp - 0x40a0]
call fcn.00452b60
mov eax, dword [ebp - 0x40a0]
add esp, 0xc
mov ecx, dword [ebp - 0x4024]
add eax, esi
mov esi, dword [ebp - 0x40b4]
mov dword [ebp - 0x4020], eax
push 0
lea eax, [ebp - 0x4018]
mov dword [ebp - 0x4018], 0
push eax
push ebx
push ecx
push dword [ebp - 0x40b8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test esi, esi
je 0x4484ac
mov dword [ebp - 0x4094], 0x67452301
mov dword [ebp - 0x4090], 0xefcdab89
mov dword [ebp - 0x408c], 0x98badcfe
mov dword [ebp - 0x4088], 0x10325476
mov dword [ebp - 0x4084], 0xc3d2e1f0
mov dword [ebp - 0x407c], 0
mov dword [ebp - 0x4080], 0
add dword [edi], 8
mov eax, dword [edi]
mov cl, byte [eax]
lea edx, [eax + 1]
mov dword [edi], edx
test cl, cl
jns 0x4484da
mov al, byte [edx]
inc edx
mov dword [edi], edx
test al, al
jns 0x4484da
mov al, byte [edx]
inc edx
mov dword [edi], edx
test al, al
jns 0x4484da
mov al, byte [edx]
inc edx
mov dword [edi], edx
test al, al
jns 0x4484da
inc edx
mov dword [edi], edx
mov al, byte [edx]
lea ecx, [edx + 1]
mov dword [edi], ecx
test al, al
jns 0x448503
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x448503
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x448503
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x448503
inc ecx
mov dword [edi], ecx
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x44852a
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x44852a
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x44852a
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x44852a
inc ecx
mov dword [edi], ecx
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x448551
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x448551
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x448551
mov al, byte [ecx]
inc ecx
mov dword [edi], ecx
test al, al
jns 0x448551
inc ecx
mov dword [edi], ecx
mov al, byte [ecx]
lea edx, [ecx + 1]
movzx ebx, al
and ebx, 0x7f
mov dword [edi], edx
test al, al
jns 0x4485ad
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [edi], edx
shl eax, 7
or ebx, eax
test cl, cl
jns 0x4485ad
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [edi], edx
shl eax, 0xe
or ebx, eax
test cl, cl
jns 0x4485ad
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [edi], edx
shl eax, 0x15
or ebx, eax
test cl, cl
jns 0x4485ad
mov cl, byte [edx]
lea eax, [edx + 1]
mov dword [edi], eax
movzx eax, cl
shl eax, 0x1c
or ebx, eax
push 4
push ebx
call fcn.00454560
push 4
push ebx
mov dword [ebp - 0x4018], eax
call fcn.00454560
add esp, 0x10
mov dword [ebp - 0x40a4], eax
mov dword [ebp - 0x40a0], 0
test ebx, ebx
je 0x44867d
nop
mov ecx, dword [edi]
mov dl, byte [ecx]
lea eax, [ecx + 1]
movzx esi, dl
and esi, 0x7f
mov dword [edi], eax
test dl, dl
jns 0x448640
mov cl, byte [eax]
lea edx, [eax + 1]
movzx eax, cl
and eax, 0x7f
mov dword [edi], edx
shl eax, 7
or esi, eax
test cl, cl
jns 0x448640
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [edi], edx
shl eax, 0xe
or esi, eax
test cl, cl
jns 0x448640
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [edi], edx
shl eax, 0x15
or esi, eax
test cl, cl
jns 0x448640
mov cl, byte [edx]
lea eax, [edx + 1]
mov dword [edi], eax
movzx eax, cl
shl eax, 0x1c
or esi, eax
mov ecx, dword [ebp - 0x40a0]
mov edx, dword [ebp - 0x4018]
mov dword [edx + ecx*4], esi
inc ecx
mov dword [ebp - 0x40a0], ecx
cmp ecx, ebx
jb 0x4485e0
mov esi, dword [ebp - 0x40a4]
sub esi, edx
mov ecx, dword [edi]
lea edx, [edx + 4]
mov eax, dword [edx - 4]
add eax, ecx
mov dword [esi + edx - 4], ecx
mov dword [edi], eax
sub ebx, 1
jne 0x448662
mov eax, dword [ebp - 0x40a4]
mov ecx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ebp - 0x409c], ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x40a0], eax
mov al, byte [edi]
inc edi
movzx esi, al
and esi, 0x7f
mov dword [ebp - 0x4098], ebx
mov dword [ebp - 0x40bc], ecx
test al, al
jns 0x4486f4
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 7
or esi, eax
test cl, cl
jns 0x4486f4
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 0xe
or esi, eax
test cl, cl
jns 0x4486f4
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 0x15
or esi, eax
test cl, cl
jns 0x4486f4
mov al, byte [edi]
inc edi
movzx eax, al
shl eax, 0x1c
or esi, eax
mov eax, ebx
mov dword [ebp - 0x4028], 0
mov dword [ebp - 0x4030], eax
cmp edx, eax
jae 0x448aba
nop
mov al, byte [edx]
inc edx
movzx ebx, al
and ebx, 0x7f
mov dword [ebp - 0x40a4], edx
mov dword [ebp - 0x40a8], ebx
test al, al
jns 0x448788
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [ebp - 0x40a4], edx
shl eax, 7
or ebx, eax
test cl, cl
jns 0x448782
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [ebp - 0x40a4], edx
shl eax, 0xe
or ebx, eax
test cl, cl
jns 0x448782
mov cl, byte [edx]
inc edx
movzx eax, cl
and eax, 0x7f
mov dword [ebp - 0x40a4], edx
shl eax, 0x15
or ebx, eax
test cl, cl
jns 0x448782
mov al, byte [edx]
inc edx
movzx eax, al
shl eax, 0x1c
mov dword [ebp - 0x40a4], edx
or ebx, eax
mov dword [ebp - 0x40a8], ebx
mov edx, dword [ebp - 0x4098]
mov al, byte [edx]
inc edx
mov dword [ebp - 0x4098], edx
movzx edx, al
and edx, 0x7f
mov dword [ebp - 0x40ac], edx
test al, al
jns 0x448834
mov eax, dword [ebp - 0x4098]
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x4098], eax
movzx eax, cl
and eax, 0x7f
shl eax, 7
or edx, eax
mov dword [ebp - 0x40ac], edx
test cl, cl
jns 0x448834
mov eax, dword [ebp - 0x4098]
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x4098], eax
movzx eax, cl
and eax, 0x7f
shl eax, 0xe
or edx, eax
mov dword [ebp - 0x40ac], edx
test cl, cl
jns 0x448834
mov eax, dword [ebp - 0x4098]
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x4098], eax
movzx eax, cl
and eax, 0x7f
shl eax, 0x15
or edx, eax
mov dword [ebp - 0x40ac], edx
test cl, cl
jns 0x448834
mov ecx, dword [ebp - 0x4098]
mov al, byte [ecx]
inc ecx
movzx eax, al
shl eax, 0x1c
or edx, eax
mov dword [ebp - 0x4098], ecx
mov dword [ebp - 0x40ac], edx
mov ecx, dword [ebp - 0x409c]
mov al, byte [ecx]
inc ecx
movzx edx, al
and edx, 0x7f
mov dword [ebp - 0x409c], ecx
test al, al
jns 0x4488b7
mov cl, byte [ecx]
inc dword [ebp - 0x409c]
movzx eax, cl
and eax, 0x7f
shl eax, 7
or edx, eax
test cl, cl
jns 0x4488b7
mov eax, dword [ebp - 0x409c]
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x409c], eax
movzx eax, cl
and eax, 0x7f
shl eax, 0xe
or edx, eax
test cl, cl
jns 0x4488b7
mov eax, dword [ebp - 0x409c]
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x409c], eax
movzx eax, cl
and eax, 0x7f
shl eax, 0x15
or edx, eax
test cl, cl
jns 0x4488b7
mov ecx, dword [ebp - 0x409c]
mov al, byte [ecx]
inc ecx
movzx eax, al
shl eax, 0x1c
mov dword [ebp - 0x409c], ecx
or edx, eax
mov eax, edx
shr eax, 1
test dl, 1
je 0x4488c2
not eax
mov dword [ebp - 0x4018], eax
test ebx, ebx
je 0x448a18
mov eax, dword [ebp - 0x40a8]
mov ebx, 0x4000
cmp eax, ebx
cmovb ebx, eax
cmp byte [ebp + 0x14], 0
je 0x44890b
mov eax, dword [ebp - 0x4024]
add eax, dword [ebp - 0x40b0]
push ebx
push eax
lea eax, [ebp - 0x4014]
push eax
call fcn.00453fa0
add esp, 0xc
add dword [ebp - 0x40b0], ebx
jmp 0x448928
push 0
lea eax, [ebp - 0x4028]
push eax
push ebx
lea eax, [ebp - 0x4014]
push eax
push dword [ebp - 0x40b8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
xor edx, edx
test ebx, ebx
je 0x4489b1
test esi, esi
je 0x448947
mov eax, ebx
mov ecx, esi
sub eax, edx
cmp esi, eax
cmovae ecx, eax
add edx, ecx
sub esi, ecx
jmp 0x4489ad
mov ecx, dword [ebp - 0x40bc]
movzx eax, byte [ecx]
inc ecx
add byte [ebp + edx - 0x4014], al
inc edx
mov al, byte [edi]
inc edi
movzx esi, al
and esi, 0x7f
mov dword [ebp - 0x40bc], ecx
test al, al
jns 0x4489ad
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 7
or esi, eax
test cl, cl
jns 0x4489ad
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 0xe
or esi, eax
test cl, cl
jns 0x4489ad
mov cl, byte [edi]
inc edi
movzx eax, cl
and eax, 0x7f
shl eax, 0x15
or esi, eax
test cl, cl
jns 0x4489ad
mov al, byte [edi]
inc edi
movzx eax, al
shl eax, 0x1c
or esi, eax
cmp edx, ebx
jb 0x448932
push 0
lea eax, [ebp - 0x4028]
push eax
push ebx
lea eax, [ebp - 0x4014]
push eax
push dword [ebp - 0x40c0]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [ebp - 0x40b4], 0
je 0x4489ec
push ebx
lea edx, [ebp - 0x4014]
lea ecx, [ebp - 0x4094]
call fcn.00423840
add esp, 4
mov ecx, dword [ebp - 0x40c4]
test ecx, ecx
je 0x448a04
mov eax, dword [ecx]
push 0
push 0
push ebx
push 0
push 0
call dword [eax + 4]
mov eax, dword [ebp - 0x40a8]
sub eax, ebx
mov dword [ebp - 0x40a8], eax
jne 0x4488d6
mov ebx, dword [ebp - 0x40ac]
test ebx, ebx
je 0x448a7a
push 0
lea eax, [ebp - 0x4028]
push eax
push ebx
push dword [ebp - 0x40a0]
push dword [ebp - 0x40c0]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [ebp - 0x40b4], 0
je 0x448a5c
mov edx, dword [ebp - 0x40a0]
lea ecx, [ebp - 0x4094]
push ebx
call fcn.00423840
add esp, 4
mov ecx, dword [ebp - 0x40c4]
test ecx, ecx
je 0x448a74
mov eax, dword [ecx]
push 0
push 0
push ebx
push 0
push 0
call dword [eax + 4]
add dword [ebp - 0x40a0], ebx
mov eax, dword [ebp - 0x4018]
test eax, eax
je 0x448aa8
cmp byte [ebp + 0x14], 0
je 0x448a92
add dword [ebp - 0x40b0], eax
jmp 0x448aa8
mov ecx, dword [ebp - 0x40b8]
cdq
push edx
push eax
mov edx, 1
call fcn.00419270
add esp, 8
mov edx, dword [ebp - 0x40a4]
cmp edx, dword [ebp - 0x4030]
jb 0x448710
mov eax, dword [ebp - 0x40b4]
test eax, eax
je 0x448ad5
push ecx
mov edx, eax
lea ecx, [ebp - 0x4094]
call fcn.004238f0
add esp, 4
mov ecx, dword [ebp - 0x4024]
test ecx, ecx
je 0x448b0b
mov edx, dword [ebp - 0x401c]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x448b01
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x448b29
push edx
push ecx
call fcn.00451449
add esp, 8
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00450db2
mov esp, ebp
pop ebp
ret
call fcn.00460976
int3