Function at 0x1008345e
Capabilities:
Get file size
Write file on windows

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x254
mov esi, dword [esp + 0x280]
mov eax, dword [0x100c51b8]
xor eax, esp
mov dword [esp + 0x250], eax
xor eax, eax
push eax
push eax
push eax
push dword [esp + 0x274]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [esp + 0x34], eax
lea eax, [esi + esi]
mov dword [esp + 0x28], eax
mov esi, 0xc7fc63ec
mov dword [esp + 0x10], eax
xor ebx, ebx
cmp esi, 0x1dae7718
jg 0x100834e4
cmp esi, 0xc69edd6e
jle 0x10083b1e
cmp esi, 0xf01afdbb
jg 0x10083ba5
cmp esi, 0xc7fc63ec
je 0x10083c4d
cmp esi, 0xcca0e576
jne 0x10083dab
mov esi, 0x34766290
jmp 0x100834a5
cmp esi, 0x3bfce30c
jg 0x10083b60
cmp esi, 0x29e6e9a8
jg 0x10083bc7
cmp esi, 0x1dae7719
je 0x10083c66
cmp esi, 0x1f3f21b5
jne 0x100834a5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov byte [ecx + eax], bl
mov dword [esp + 0x2c], ebp
lea ebp, [esp + 0x238]
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x20]
mov dword [esp + 0x238], ebx
mov dword [esp + 0x248], ebx
mov dword [esp + 0x30], edi
mov edi, 0xf
mov dword [esp + 0x24c], edi
mov byte [esp + 0x238], bl
push str._Profile_
push ebp
lea esi, [esp + 0x48]
push esi
call fcn.1006215e
add esp, 0xc
mov ecx, esi
mov eax, 2
push eax
mov eax, 0x100be681
push eax
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x68], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x58], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x58]
mov eax, 7
push eax
push str.config1
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x80], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x70], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x70]
xor ebp, ebp
inc ebp
push ebp
mov eax, 0x100be459
push eax
call fcn.10008e94
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x88], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x98], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
mov esi, dword [esp + 4]
push esi
call fcn.1009ee80
add esp, 4
lea ecx, [esp + 0x88]
push eax
push esi
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xb0], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xa0], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0xa0]
mov eax, 2
push eax
mov eax, 0x100be681
push eax
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xc8], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xb8], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0xb8]
mov eax, 7
push eax
push str.config2
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xe0], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xd0], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0xd0]
push ebp
mov eax, 0x100be459
push eax
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xf8], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xe8], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
mov esi, dword [esp + 0x270]
push esi
call fcn.1009ee80
add esp, 4
lea ecx, [esp + 0xe8]
push eax
push esi
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x110], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x100], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x100]
mov eax, 2
push eax
mov eax, 0x100be681
push eax
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x128], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x118], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x118]
mov eax, 7
push eax
push str.config3
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x140], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x130], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x130]
push ebp
mov eax, 0x100be459
push eax
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x158], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x148], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
mov esi, dword [esp + 0x274]
push esi
call fcn.1009ee80
add esp, 4
lea ecx, [esp + 0x148]
push eax
push esi
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x170], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x160], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x160]
mov eax, 2
push eax
mov eax, 0x100be681
push eax
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x188], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x178], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x178]
mov eax, 7
push eax
push str.config4
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x1a0], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x190], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x190]
push ebp
mov eax, 0x100be459
push eax
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x1b8], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x1a8], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
mov esi, dword [esp + 0x278]
push esi
call fcn.1009ee80
add esp, 4
lea ecx, [esp + 0x1a8]
push eax
push esi
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x1d0], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x1c0], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x1c0]
mov eax, 2
push eax
mov eax, 0x100be681
push eax
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x1e8], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x1d8], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x1d8]
mov eax, 7
push eax
push str.config5
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x200], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x1f0], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x1f0]
mov esi, 2
push esi
push 0x100be4b4
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x218], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x208], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ebp, [esp + 0x208]
mov ecx, ebp
push esi
mov eax, 0x100be681
push eax
call fcn.10008e94
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x230], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x220], xmm0
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov byte [eax], bl
lea ecx, [esp + 0x238]
lea edi, [esp + 0x220]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
mov ecx, ebp
mov ebp, dword [esp + 0x2c]
call fcn.100087f0
lea ecx, [esp + 0x1f0]
call fcn.100087f0
lea ecx, [esp + 0x1d8]
call fcn.100087f0
lea ecx, [esp + 0x1c0]
call fcn.100087f0
lea ecx, [esp + 0x1a8]
call fcn.100087f0
lea ecx, [esp + 0x190]
call fcn.100087f0
lea ecx, [esp + 0x178]
call fcn.100087f0
lea ecx, [esp + 0x160]
call fcn.100087f0
lea ecx, [esp + 0x148]
call fcn.100087f0
lea ecx, [esp + 0x130]
call fcn.100087f0
lea ecx, [esp + 0x118]
call fcn.100087f0
lea ecx, [esp + 0x100]
call fcn.100087f0
lea ecx, [esp + 0xe8]
call fcn.100087f0
lea ecx, [esp + 0xd0]
call fcn.100087f0
lea ecx, [esp + 0xb8]
call fcn.100087f0
lea ecx, [esp + 0xa0]
call fcn.100087f0
lea ecx, [esp + 0x88]
call fcn.100087f0
lea ecx, [esp + 0x70]
call fcn.100087f0
lea ecx, [esp + 0x58]
call fcn.100087f0
lea ecx, [esp + 0x40]
call fcn.100087f0
lea edi, [esp + 0x38]
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], ebx
mov esi, dword [esp + 0x248]
lea ecx, [esp + 0x238]
call fcn.10007bca
push ebx
push edi
mov edi, dword [esp + 0x38]
push esi
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov al, byte [esp + 3]
mov ecx, dword [esp + 8]
cmp ecx, 0xffffffff
mov esi, 0x7ce7e806
mov ecx, 0x1dae7719
cmovne esi, ecx
test al, 1
mov eax, 0x7ce7e806
cmove esi, eax
jmp 0x100834a5
cmp esi, 0x9055bd4d
jg 0x10083bf5
cmp esi, 0x8bc6a9d0
je 0x10083c7a
cmp esi, 0x8fe95eef
jne 0x100834a5
push dword [esp + 0x1c]
push 0
push dword [esp + 0xc]
call fcn.1008c000
add esp, 0xc
mov esi, 0x4e9ea07b
xor ebp, ebp
jmp 0x100834a5
cmp esi, 0x767f8fbf
jg 0x10083c2b
cmp esi, 0x3bfce30d
je 0x10083c8e
cmp esi, 0x4e9ea07b
jne 0x100834a5
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x280]
mov esi, 0x1f3f21b5
mov eax, 0xf01afdbc
cmovb esi, eax
jmp 0x100834a5
cmp esi, 0xf01afdbc
je 0x10083cd7
cmp esi, 0xfcef9523
jne 0x100834a5
mov esi, 0x9ce488bd
jmp 0x100834a5
cmp esi, 0x29e6e9a9
je 0x10083d12
cmp esi, 0x34766290
jne 0x100834a5
push dword [esp + 4]
call fcn.100879a5
add esp, 4
mov esi, 0xfcef9523
jmp 0x100834a5
cmp esi, 0x9055bd4e
je 0x10083d29
cmp esi, 0x9ce488bd
jne 0x100834a5
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x238]
call fcn.100087f0
mov eax, dword [esp + 0x20]
mov esi, 0xc69edd6f
jmp 0x100834a5
cmp esi, 0x767f8fc0
je 0x10083d6a
cmp esi, 0x7ce7e806
jne 0x100834a5
mov esi, 0xcca0e576
jmp 0x100834a5
mov eax, dword [esp + 0x34]
cmp eax, 0xffffffff
mov esi, 0x29e6e9a9
mov eax, 0x767f8fc0
cmove esi, eax
jmp 0x100834a5
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0x7ce7e806
jmp 0x100834a5
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0xc69edd6f
jmp 0x100834a5
mov dword [esp + 8], edi
mov eax, dword [esp + 0x10]
mov byte [esp + 3], al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x1c], eax
push 0x100b58cc
push dword [esp + 0x20]
call fcn.1008799c
add esp, 8
mov dword [esp + 4], eax
cmp dword [esp + 4], 0
mov esi, 0x8fe95eef
mov eax, 0x8bc6a9d0
cmove esi, eax
jmp 0x100834a5
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x27c]
movzx eax, byte [ecx + eax]
mov ecx, dword [esp + 0xc]
add ecx, ecx
add ecx, dword [esp + 4]
push eax
push str._02x
push 2
push 3
push ecx
call fcn.1005b53c
add esp, 0x14
mov ebp, dword [esp + 0xc]
inc ebp
mov esi, 0x4e9ea07b
jmp 0x100834a5
push dword [esp + 0x268]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov esi, 0x767f8fc0
jmp 0x100834a5
sub esp, 0x1c
movaps xmm0, xmmword [0x100b5880]
movups xmmword [esp + 4], xmm0
mov eax, dword [esp + 0x288]
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80
mov esi, 0x3bfce30d
mov al, 1
mov dword [esp + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
jmp 0x100834a5
lea ecx, [esp + 0x3c]
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], 0
push ecx
mov edi, dword [esp + 0x26c]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
or eax, dword [esp + 0x3c]
mov esi, 0x3bfce30d
mov eax, 0x9055bd4e
cmovne esi, eax
mov dword [esp + 0x10], 0
jmp 0x100834a5
cmp esi, 0xc69edd6f
jne 0x100834a5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.100879aa
add esp, 0x254
pop esi
pop edi
pop ebx
pop ebp
ret 0x1c