Function at 0x5248a0
Capabilities:
Check if file exists
Check mutex and terminate process on windows
Check mutex on windows
Create directory
Delete file
Enumerate files on windows
Get common file path
Get disk size
Get file attributes
Get file size
Get file version info
Print debug messages
Query or enumerate registry value
Read .ini file
Read file on windows
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
mov dword [ebp - 0x40], 0x1e7
mov dword [ebp - 0x48], 0x30e
mov dword [ebp - 0x94], 0x217
mov dword [ebp - 0x24], 0x32a
mov dword [ebp - 0x30], 0x282
mov dword [ebp - 0x38], 0x29b
mov dword [ebp - 0x14], 0x1c6
mov dword [ebp - 0x90], 0x133
mov dword [ebp - 0x18], 0x7a
mov dword [ebp - 0x2c], 0x1eb
mov dword [ebp - 0x34], 0x29
mov dword [ebp - 0x98], 0x290
mov dword [ebp - 0x84], 0x203
mov dword [ebp - 0x20], 0x30
mov dword [ebp - 4], 0x36
mov dword [ebp - 0x10], 0x197
mov dword [ebp - 0x54], 0x342
mov dword [ebp - 0x28], 0x2cf
mov dword [ebp - 0x3c], 0xaf
mov dword [ebp - 0x1c], 0xcb
mov dword [ebp - 0xc], 0x81
mov dword [ebp - 8], 0x237
mov dword [ebp - 0x44], 0x1c2
mov eax, dword [ebp - 0x1c]
sub eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x54]
jge 0x524970
mov edx, dword [ebp - 0x34]
add edx, 1
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x38]
sub eax, 1
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x2c]
jge 0x524993
mov dword [ebp - 0x4c], 1
jmp 0x52499a
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x1c]
jge 0x5249ab
mov dword [ebp - 0x50], 1
jmp 0x5249b2
mov dword [ebp - 0x50], 0
mov ecx, dword [ebp - 0x4c]
or ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x20]
xor edx, dword [ebp - 8]
or ecx, edx
je 0x524a06
mov eax, dword [ebp - 0x54]
cmp eax, dword [ebp - 4]
jge 0x5249d3
mov dword [ebp - 0x58], 1
jmp 0x5249da
mov dword [ebp - 0x58], 0
mov ecx, dword [ebp - 0x3c]
cmp ecx, dword [ebp - 0x84]
jge 0x5249ee
mov dword [ebp - 0x5c], 1
jmp 0x5249f5
mov dword [ebp - 0x5c], 0
mov edx, dword [ebp - 0x58]
or edx, dword [ebp - 0x5c]
je 0x524a06
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
push 0x699c
push 0x2791
push 0x936
push 0x45ec
push 0x4d58
call fcn.00406920
add esp, 0x14
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x58e2e8], eax
mov ecx, dword [ebp - 0x3c]
cmp ecx, dword [ebp - 0x38]
jge 0x524a44
mov dword [ebp - 0x60], 1
jmp 0x524a4b
mov dword [ebp - 0x60], 0
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 4]
jge 0x524a5c
mov dword [ebp - 0x64], 1
jmp 0x524a63
mov dword [ebp - 0x64], 0
mov eax, dword [ebp - 0x60]
and eax, dword [ebp - 0x64]
je 0x524a74
mov ecx, dword [ebp - 4]
sub ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x14]
and edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 0xc]
jge 0x524a88
mov eax, dword [ebp - 0x40]
sub eax, 1
mov dword [ebp - 0x40], eax
mov ecx, dword [0x58e2fc]
push ecx
mov edx, dword [0x58e2ec]
push edx
mov eax, dword [0x58e2f8]
push eax
mov ecx, dword [0x58e2e4]
push ecx
mov edx, dword [0x58e2e8]
push edx
push 0xb3dd
push 0x214e
push 0x7aa0
push 0xec91
push 0x516d
push 0xb430
push 0x7613
call fcn.0051c0c0
add esp, 0x1c
push eax
mov eax, dword [0x58e2e8]
push eax
call fcn.005254e0
add esp, 8
call eax
test eax, eax
je 0x5252f4
mov ecx, dword [ebp - 0x94]
or ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0xc]
jge 0x524b05
mov dword [ebp - 0x68], 1
jmp 0x524b0c
mov dword [ebp - 0x68], 0
mov edx, dword [ebp - 0x3c]
cmp edx, dword [ebp - 0x10]
jge 0x524b1d
mov dword [ebp - 0x6c], 1
jmp 0x524b24
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0xc]
xor eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x98]
jge 0x524b3b
mov dword [ebp - 0x70], 1
jmp 0x524b42
mov dword [ebp - 0x70], 0
mov ecx, dword [ebp - 0x68]
and ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x70]
je 0x524b62
mov edx, dword [ebp - 0x1c]
imul edx, dword [ebp - 4]
cmp edx, dword [ebp - 0xc]
jge 0x524b62
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 8]
jge 0x525305
mov dword [ebp - 0x74], 1
jmp 0x52530c
mov dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x18]
jge 0x52531d
mov dword [ebp - 0x78], 1
jmp 0x525324
mov dword [ebp - 0x78], 0
mov ecx, dword [ebp - 0x74]
and ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x28]
imul edx, dword [ebp - 0xc]
or ecx, edx
mov dword [ebp - 0x9c], ecx
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x9c], 0
je 0x5253b9
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 4]
jge 0x525368
mov dword [ebp - 0x7c], 1
jmp 0x52536f
mov dword [ebp - 0x7c], 0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0xa4]
jge 0x5253a1
mov dword [ebp - 0x80], 1
jmp 0x5253a8
mov dword [ebp - 0x80], 0
mov ecx, dword [ebp - 0x7c]
and ecx, dword [ebp - 0x80]
je 0x5253b9
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x48]
sub eax, 0x101
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x44]
sub ecx, 0x19a
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x14]
sub edx, 0xa6
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 8]
sub eax, 0x1b9
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x14]
sub ecx, 0x51
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x48]
push eax
call fcn.004194f0
add esp, 0x14
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x10]
jge 0x525429
mov dword [ebp - 0x88], 1
jmp 0x525433
mov dword [ebp - 0x88], 0
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x1c]
jge 0x52544a
mov dword [ebp - 0x8c], 1
jmp 0x525454
mov dword [ebp - 0x8c], 0
mov ecx, dword [ebp - 0x20]
sub ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
xor edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x88]
or eax, dword [ebp - 0x8c]
or eax, edx
je 0x52547c
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x10]
add edx, 0x1c1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
add eax, 0x131
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
add ecx, 0x45
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x18]
add edx, 0x8f
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.0041c7c0
add esp, 0x10
mov ecx, dword [ebp - 0x90]
sub ecx, 1
mov dword [ebp - 0x90], ecx
mov esp, ebp
pop ebp
ret