Function at 0x481054
Capabilities:
Get file size
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 8], ecx
mov esi, edx
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 8]
xor eax, eax
push ebp
push 0x481306
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.0042c4fc
xor eax, eax
push ebp
push 0x4812e1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x374], 0
je 0x4810ba
mov ecx, 0x18b
mov edx, 0x481320
mov eax, 0x48136c
call fcn.00404818
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edi, dword [eax + 8]
test edi, edi
je 0x4810f3
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 0x48], edi
mov byte [ebp - 0x44], 0
lea edx, [ebp - 0x48]
xor ecx, ecx
mov eax, 0x48138c
call fcn.00409ec8
mov eax, dword [ebp - 0x40]
mov ecx, 0x18c
mov edx, 0x481320
call fcn.00404818
test ebx, ebx
jle 0x4810fc
cmp ebx, 0x32
jle 0x481128
lea eax, [ebp - 0x4c]
push eax
mov dword [ebp - 0x48], ebx
mov byte [ebp - 0x44], 0
lea edx, [ebp - 0x48]
xor ecx, ecx
mov eax, 0x4813a8
call fcn.00409ec8
mov eax, dword [ebp - 0x4c]
mov ecx, 0x18d
mov edx, 0x481320
call fcn.00404818
push 0
push 0
push 0
push 4
push 0
push esi
call sub.kernel32.dll_CreateFileMappingA
mov edi, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x378], edi
test edi, edi
setne al
neg al
sbb eax, eax
call fcn.0040e134
xor eax, eax
push ebp
push 0x4812ac
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x3c]
push eax
call sub.kernel32.dll_GetSystemInfo
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
mov dword [eax + 0x37c], edx
lea eax, [ebp - 0x10]
push eax
push esi
call sub.kernel32.dll_GetFileSizeEx
call fcn.0040e134
sub dword [ebp - 0x10], 0x328
sbb dword [ebp - 0xc], 0
push dword [ebp - 0xc]
push dword [ebp - 0x10]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x10]
mov ecx, 0x328
mov eax, dword [ebp - 4]
call fcn.00480eec
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], esi
mov eax, dword [ebp - 4]
add eax, 4
mov edx, dword [ebp - 8]
call fcn.00404940
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x340], edx
mov edx, dword [ebp - 0xc]
mov dword [eax + 0x344], edx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor esi, esi
mov eax, esi
add eax, eax
mov edx, dword [ebp - 4]
lea eax, [edx + eax*8 + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add dword [ebp - 0x18], eax
adc dword [ebp - 0x14], edx
inc esi
cmp esi, 0x32
jne 0x4811e0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x330], edx
mov edx, dword [ebp - 0x14]
mov dword [eax + 0x334], edx
mov edi, ebx
dec edi
test edi, edi
jl 0x48127b
inc edi
xor esi, esi
mov cl, 1
mov dl, 1
mov eax, dword [0x480708]
call fcn.004818f4
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, ebx
call fcn.00418214
mov eax, dword [ebp - 4]
mov dword [ebx + 0x60], eax
mov eax, esi
add eax, eax
mov edx, dword [ebp - 4]
lea eax, [edx + eax*8 + 0x10]
mov dword [ebx + 0x40], eax
mov byte [ebx + 0xf], 1
mov eax, dword [ebp - 4]
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x50], 0x48154c
mov eax, dword [ebp - 4]
mov dword [ebx + 0x5c], eax
mov dword [ebx + 0x58], 0x4817b0
mov eax, dword [ebp - 4]
mov dword [ebx + 0x6c], eax
mov dword [ebx + 0x68], 0x4817ec
inc esi
dec edi
jne 0x48121b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edi, dword [eax + 8]
dec edi
test edi, edi
jl 0x4812a2
inc edi
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, esi
call fcn.004183c4
call fcn.0041ebb8
inc esi
dec edi
jne 0x48128c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4812c5
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4812e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
call fcn.0042c504
ret