Function at 0x47b800
Capabilities:
Create directory
Get common file path
Get disk size
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x694d55
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x1ca4
call fcn.004ccea0
mov eax, dword [0x6ce36c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
mov dword [ebp - 0x1c74], ecx
mov dword [ebp - 4], 0
movzx eax, byte [0x6f236c]
test eax, eax
je 0x47b866
mov byte [ebp - 0x575], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x10]
call fcn.0049caf0
mov al, byte [ebp - 0x575]
jmp 0x47c082
push 0x6f4550
lea ecx, [ebp - 0x440]
call fcn.0049ca60
mov byte [ebp - 4], 1
cmp dword [ebp + 8], 0
jne 0x47b984
push 0
push 0x69e698
lea ecx, [ebp + 0x10]
call fcn.0049ce20
cmp eax, 0xffffffff
jne 0x47b8b0
push 0
push 0x69e694
lea ecx, [ebp + 0x10]
call fcn.0049ce20
cmp eax, 0xffffffff
je 0x47b965
cmp dword [0x6f2368], 0
je 0x47b935
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x57c], esp
push ecx
call fcn.0041b0d0
add esp, 4
mov dword [ebp - 0x1c78], eax
mov edx, dword [ebp - 0x1c78]
mov dword [ebp - 0x1c7c], edx
mov byte [ebp - 4], 2
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x580], esp
push 0x69e664
call fcn.0049cab0
mov dword [ebp - 0x1c80], eax
mov eax, dword [ebp - 0x1c80]
mov dword [ebp - 0x1c84], eax
mov byte [ebp - 4], 3
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x584], esp
push 0x69e618
call fcn.0049cab0
mov dword [ebp - 0x1c88], eax
mov byte [ebp - 4], 1
call fcn.0040ffb0
add esp, 0x54
mov byte [ebp - 0x585], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x440]
call fcn.0049caf0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x10]
call fcn.0049caf0
mov al, byte [ebp - 0x585]
jmp 0x47c082
lea ecx, [ebp + 0x10]
call fcn.0049cd70
push eax
push 0x69e610
lea ecx, [ebp - 0x544]
push ecx
call fcn.004cb929
add esp, 0xc
jmp 0x47b9a5
mov edx, dword [ebp + 8]
push edx
lea ecx, [ebp + 0x10]
call fcn.0049cd70
push eax
push str._s_.2i.sav
lea eax, [ebp - 0x544]
push eax
call fcn.004cb929
add esp, 0x10
lea ecx, [ebp - 0x544]
push ecx
lea ecx, [ebp - 0x440]
call fcn.0049cb70
lea edx, [ebp - 0x590]
push edx
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a84f0
push eax
lea eax, [ebp - 0x440]
push eax
lea ecx, [ebp - 0x58c]
push ecx
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a4660
mov ecx, eax
call fcn.004bb510
movzx edx, al
test edx, edx
je 0x47ba4a
lea ecx, [ebp - 0x1c5c]
call fcn.0047c0a0
mov dword [ebp - 0x1c8c], eax
mov eax, dword [ebp - 0x1c8c]
mov dword [ebp - 0x1c90], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x1c90]
push ecx
lea edx, [ebp - 0x440]
push edx
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a42a0
mov ecx, eax
call fcn.00487160
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c5c]
call fcn.00487060
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x47bb6d
push 0x6f4ac8
lea ecx, [ebp - 0x440]
push ecx
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a42a0
add eax, 0x1410
mov ecx, eax
call fcn.0047fe80
push 0x6f4b40
lea edx, [ebp - 0x440]
push edx
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a42a0
add eax, 0x918
mov ecx, eax
call fcn.0044ef60
push 0x6f5908
lea eax, [ebp - 0x440]
push eax
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a42a0
mov ecx, eax
call fcn.0044fed0
push 0x6f63f0
lea ecx, [ebp - 0x440]
push ecx
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a42a0
add eax, 0x1468
mov ecx, eax
call fcn.0044f6d0
push 0x6f5830
lea edx, [ebp - 0x440]
push edx
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a42a0
add eax, 0x15c8
mov ecx, eax
call fcn.004502f0
push 0x6f56a8
lea eax, [ebp - 0x440]
push eax
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a42a0
add eax, 0x1660
mov ecx, eax
call fcn.0044e8f0
lea ecx, [ebp - 0x440]
push ecx
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a42a0
mov esi, eax
add esi, 0x918
lea edx, [ebp - 0x440]
push edx
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a42a0
mov dword [eax + 0x1410], esi
mov byte [0x6f03d9], 0
mov dword [0x6f03f8], 0
push 0x1dc1300
call fcn.004cb917
add esp, 4
mov dword [0x6f03fc], eax
push 0x1dc1300
push 0
mov eax, dword [0x6f03fc]
push eax
call fcn.004cb810
add esp, 0xc
mov ecx, dword [0x6f03f8]
add ecx, 0x14
mov dword [0x6f03f8], ecx
mov byte [ebp - 0x1d], 0x19
mov dword [0x6f040c], 1
mov edx, dword [0x6f040c]
push edx
lea eax, [ebp - 0x1d]
push eax
mov ecx, dword [0x6f03fc]
add ecx, dword [0x6f03f8]
push ecx
call fcn.004cb4d0
add esp, 0xc
mov edx, dword [0x6f03f8]
add edx, dword [0x6f040c]
mov dword [0x6f03f8], edx
mov ecx, dword [ebp - 0x1c74]
call fcn.0047ff00
lea eax, [ebp - 0x440]
push eax
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x10
call fcn.004a42a0
mov ecx, eax
call fcn.0047c5d0
mov dword [0x6f040c], 1
mov ecx, dword [0x6f040c]
push ecx
lea edx, [ebp - 0x1d]
push edx
mov eax, dword [0x6f03fc]
add eax, dword [0x6f03f8]
push eax
call fcn.004cb4d0
add esp, 0xc
mov ecx, dword [0x6f03f8]
add ecx, dword [0x6f040c]
mov dword [0x6f03f8], ecx
push 0
call fcn.004cb494
add esp, 4
push eax
call fcn.004cb465
add esp, 4
call fcn.004cb472
and eax, 0xff0
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov byte [ebp - 0x1c], al
call fcn.004cb472
and eax, 0xff0
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov byte [ebp - 0x1b], al
call fcn.004cb472
and eax, 0xff0
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov byte [ebp - 0x1a], al
movzx edx, byte [ebp - 0x1c]
test edx, edx
jne 0x47bd06
movzx eax, byte [ebp - 0x1b]
test eax, eax
jne 0x47bd06
movzx ecx, byte [ebp - 0x1a]
test ecx, ecx
jne 0x47bd06
mov dword [ebp - 0x570], 0
jmp 0x47bcde
mov edx, dword [ebp - 0x570]
add edx, 1
mov dword [ebp - 0x570], edx
cmp dword [ebp - 0x570], 3
jge 0x47bd06
call fcn.004cb472
and eax, 0xff0
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov ecx, dword [ebp - 0x570]
mov byte [ebp + ecx - 0x1c], al
jmp 0x47bccf
mov byte [ebp - 0x564], 0
mov byte [ebp - 0x563], 0
mov byte [ebp - 0x562], 0
lea edx, [ebp - 0x564]
push edx
push 0xfffffffffffffffd
lea eax, [ebp - 0x1c]
push eax
push 3
mov ecx, dword [0x6f03f8]
push ecx
push 0x14
mov edx, dword [0x6f03fc]
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1c60], esp
lea eax, [ebp - 0x440]
push eax
call fcn.0049ca60
mov dword [ebp - 0x1c94], eax
call fcn.00403610
add esp, 0x38
mov dword [ebp - 0x574], 0
jmp 0x47bd7a
mov ecx, dword [ebp - 0x574]
add ecx, 1
mov dword [ebp - 0x574], ecx
cmp dword [ebp - 0x574], 0x14
jge 0x47bda9
call fcn.004cb472
and eax, 0xff00
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov edx, dword [0x6f03fc]
add edx, dword [ebp - 0x574]
mov byte [edx], al
jmp 0x47bd6b
mov eax, dword [0x6f03fc]
mov cl, byte [ebp - 0x1c]
mov byte [eax], cl
mov edx, dword [0x6f03fc]
mov al, byte [ebp - 0x1b]
mov byte [edx + 3], al
mov ecx, dword [0x6f03fc]
mov dl, byte [ebp - 0x1a]
mov byte [ecx + 9], dl
mov eax, dword [0x6f03fc]
mov cl, byte [ebp - 0x564]
mov byte [eax + 2], cl
mov edx, dword [0x6f03fc]
mov al, byte [ebp - 0x563]
mov byte [edx + 6], al
mov ecx, dword [0x6f03fc]
mov dl, byte [ebp - 0x562]
mov byte [ecx + 8], dl
mov ecx, 0x6f4550
call fcn.0049cd70
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [ebp - 0x424]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea ecx, [ebp - 0x424]
push ecx
lea ecx, [ebp - 0x560]
call fcn.0049cab0
mov byte [ebp - 4], 5
push str.Save_
lea ecx, [ebp - 0x560]
call fcn.0049cb70
push 0
lea ecx, [ebp - 0x560]
call fcn.0049cd70
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea edx, [ebp - 0x56c]
mov dword [ebp - 0x14], edx
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
mov eax, dword [0x6f03f8]
sub eax, 0xc8
cdq
mov dword [ebp - 0x1c9c], eax
mov dword [ebp - 0x1c98], edx
mov ecx, dword [ebp - 0x568]
cmp ecx, dword [ebp - 0x1c98]
ja 0x47bf66
jb 0x47beaa
mov edx, dword [ebp - 0x56c]
cmp edx, dword [ebp - 0x1c9c]
jae 0x47bf66
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1c64], esp
push 0x69d8f9
call fcn.0049cab0
mov dword [ebp - 0x1ca0], eax
mov eax, dword [ebp - 0x1ca0]
mov dword [ebp - 0x1ca4], eax
mov byte [ebp - 4], 6
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1c68], esp
push 0x69e5c4
call fcn.0049cab0
mov dword [ebp - 0x1ca8], eax
mov ecx, dword [ebp - 0x1ca8]
mov dword [ebp - 0x1cac], ecx
mov byte [ebp - 4], 7
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1c6c], esp
push 0x69e58c
call fcn.0049cab0
mov dword [ebp - 0x1cb0], eax
mov byte [ebp - 4], 5
call fcn.0040ffb0
add esp, 0x54
mov byte [ebp - 0x1c6d], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x560]
call fcn.0049caf0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x440]
call fcn.0049caf0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x10]
call fcn.0049caf0
mov al, byte [ebp - 0x1c6d]
jmp 0x47c082
push 0x69e588
lea ecx, [ebp - 0x440]
call fcn.0049cd70
push eax
call fcn.004cad48
add esp, 8
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x47bfc7
mov byte [ebp - 0x1c6e], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x560]
call fcn.0049caf0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x440]
call fcn.0049caf0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x10]
call fcn.0049caf0
mov al, byte [ebp - 0x1c6e]
jmp 0x47c082
mov edx, dword [ebp - 0x18]
push edx
push 1
mov eax, dword [0x6f03f8]
push eax
mov ecx, dword [0x6f03fc]
push ecx
call fcn.004caf97
add esp, 0x10
mov edx, dword [ebp - 0x18]
push edx
call fcn.004cb2aa
add esp, 4
mov dword [0x6f03f8], 0
mov eax, dword [0x6f03fc]
push eax
call fcn.004cb3f4
add esp, 4
mov ecx, 1
test ecx, ecx
je 0x47c018
mov edx, dword [ebp + 8]
mov dword [0x6f547c], edx
lea eax, [ebp - 0x440]
push eax
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x1c
call fcn.004a4720
mov byte [eax], 1
lea ecx, [ebp - 0x440]
push ecx
mov ecx, dword [ebp - 0x1c74]
add ecx, 0x28
call fcn.004a4720
mov byte [eax], 0
mov byte [ebp - 0x1c6f], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x560]
call fcn.0049caf0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x440]
call fcn.0049caf0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x10]
call fcn.0049caf0
mov al, byte [ebp - 0x1c6f]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004cac87
mov esp, ebp
pop ebp
ret 0x24