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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1fc
mov eax, dword [0x1008a418]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, 0xa4
mov dword [ebp - 0x1fc], ecx
push edi
lea eax, [ebp - 0x1c0]
mov esi, edx
push 0
push eax
mov dword [ebp - 0x1f4], esi
mov ebx, 0x80004005
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0xd0]
push edi
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea edi, [ebp - 0x24]
xor eax, eax
push 8
pop ecx
rep stosd dword es:[edi], eax
xor edi, edi
lea eax, [ebp - 0x118]
push 0x44
push edi
push eax
mov dword [ebp - 0x1e8], edi
mov dword [ebp - 0x1e4], edi
mov dword [ebp - 0x1dc], edi
mov dword [ebp - 0x1f0], edi
mov dword [ebp - 0x1ec], edi
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x1f8], edi
push 0x7f02
push edi
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov edi, eax
xor eax, eax
push eax
push eax
push eax
push esi
mov dword [ebp - 0x1e0], edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x10034b6d
push 0
push 0xa4
lea edx, [ebp - 0x1c0]
mov ecx, esi
call fcn.10035ff0
jmp 0x10034b6f
xor eax, eax
test eax, eax
je 0x10035268
mov edx, esi
lea ecx, [ebp - 0x1c0]
call fcn.10034037
test eax, eax
je 0x10035268
push 0x29
pop ecx
lea esi, [ebp - 0x1c0]
lea edi, [ebp - 0xd0]
rep movsd dword es:[edi], dword [esi]
xor edi, edi
lea ecx, [ebp - 0xac]
mov dword [ebp - 0xc0], edi
mov eax, edi
mov dword [ebp - 0x58], edi
cmp eax, 1
je 0x10034bba
mov dword [ecx - 8], edi
mov dword [ecx], edi
inc eax
add ecx, 0x10
cmp eax, 6
jb 0x10034bb0
mov esi, dword [ebp - 0x1f4]
push edi
push edi
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x10034bfb
push edi
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x1ec], edi
push eax
push 0xa4
lea eax, [ebp - 0xd0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x10034bfd
mov eax, edi
test eax, eax
je 0x10035262
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x1d4], eax
cmp eax, 0xffffffff
jne 0x10034c22
mov ebx, 0x80040116
jmp 0x10035262
push dword [ebp - 0x1a8]
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x1d8], eax
test eax, eax
jne 0x10034c44
mov ebx, 0x8007000e
jmp 0x10035262
push dword [ebp - 0x1a8]
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1ec], eax
test eax, eax
jne 0x10034c6c
mov ebx, 0x8007000e
jmp 0x10035245
mov edi, dword [ebp - 0x158]
add edi, dword [ebp - 0x150]
and dword [ebp - 0x1d0], 0
mov dword [ebp - 0x1c8], edi
cmp edi, dword [ebp - 0x1d4]
jae 0x10034f0d
and dword [ebp - 0x1cc], 0
push 0
push 0
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x10034cb9
push 0
push 0x20
lea edx, [ebp - 0x24]
mov ecx, esi
call fcn.10035ff0
jmp 0x10034cbb
xor eax, eax
test eax, eax
je 0x10035234
cmp dword [ebp - 0x24], 0
je 0x10034eb1
mov eax, dword [ebp - 0x1fc]
lea esi, [ebp - 0x24]
push 0
push 0
push dword [ebp - 0x1d4]
mov eax, dword [eax + 0x10]
sub esp, 0x20
push 8
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x1c8]
mov edx, edi
mov ecx, dword [eax + 0x14]
call fcn.100352ac
test eax, eax
je 0x1003503f
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x1dc]
push ecx
push dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1d8]
mov edx, eax
mov dword [ebp - 0x1c8], eax
call fcn.10033a19
test eax, eax
je 0x10034d87
lea eax, [edi + 0x20]
cmp eax, edi
jb 0x10034d37
mov ecx, eax
jmp 0x10034d3a
or ecx, 0xffffffff
mov dword [ebp - 0x1c8], ecx
cmp eax, edi
jb 0x10034f37
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0x1c8]
push eax
call fcn.1000de41
test eax, eax
js 0x10034f37
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1c8]
push eax
call fcn.1000de41
test eax, eax
js 0x10034f37
mov esi, dword [ebp - 0x1f4]
jmp 0x10034ef5
mov eax, dword [ebp - 0x1cc]
add eax, 8
cmp eax, dword [ebp - 0x1a8]
ja 0x1003503f
mov esi, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d0]
cmp esi, ecx
je 0x10034dd2
mov eax, ecx
sub eax, esi
shl eax, 3
push eax
mov eax, dword [ebp - 0x1d8]
lea eax, [eax + esi*8]
push eax
push dword [ebp - 0x1c4]
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x1d0]
add esp, 0xc
mov edx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x1c8]
mov dword [edx + esi*8], eax
mov dword [edx + esi*8 + 4], edi
cmp esi, ecx
je 0x10034e0c
mov eax, ecx
sub eax, esi
shl eax, 3
push eax
push dword [ebp - 0x1c4]
lea eax, [edx + 8]
lea eax, [eax + esi*8]
push eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x1d0]
add esp, 0xc
mov esi, dword [ebp - 0x1f4]
inc ecx
add dword [ebp - 0x1cc], 8
push 0
push 0
push dword [ebp - 0x1a0]
mov dword [ebp - 0x1d0], ecx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x10034e4b
push dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x1d8]
mov ecx, esi
call fcn.10035fcf
jmp 0x10034e4d
xor eax, eax
test eax, eax
je 0x10035234
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1cc]
push 0
push 0
push 0
push esi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xac], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x10034ea7
and dword [ebp - 0x1c8], 0
lea eax, [ebp - 0x1c8]
push 0
push eax
push 0xa4
lea eax, [ebp - 0xd0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x10034ea9
xor eax, eax
test eax, eax
je 0x10035234
lea eax, [edi + 0x20]
cmp eax, edi
jb 0x10034ebc
mov ecx, eax
jmp 0x10034ebf
or ecx, 0xffffffff
mov dword [ebp - 0x1c8], ecx
cmp eax, edi
jb 0x10034f37
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0x1c8]
push eax
call fcn.1000de41
test eax, eax
js 0x10034f37
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1c8]
push eax
call fcn.1000de41
test eax, eax
js 0x10034f37
mov edi, dword [ebp - 0x1c8]
mov dword [ebp - 0x1c8], edi
cmp edi, dword [ebp - 0x1d4]
jb 0x10034c98
lea ecx, [ebp - 0x1ec]
call fcn.10037062
imul eax, dword [ebp - 0x1d0], 0x44
cmp eax, dword [ebp - 0x198]
jbe 0x10034f41
mov eax, dword [ebp - 0x1ec]
mov ebx, 0x8004011b
jmp 0x1003523a
mov ebx, 0x80070216
jmp 0x10035234
push dword [ebp - 0x198]
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x1c4], eax
test eax, eax
je 0x10034c62
push dword [ebp - 0x198]
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x1f8], eax
test eax, eax
jne 0x10034f7f
mov ebx, 0x8007000e
jmp 0x10035234
mov edi, dword [ebp - 0x1fc]
xor edx, edx
push esi
mov ecx, edi
call fcn.10033c21
test eax, eax
je 0x10035234
mov edi, dword [edi + 0x10]
xor eax, eax
push eax
push eax
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x10034fbd
push 0
push 0xa4
mov edx, edi
mov ecx, esi
call fcn.10035ff0
jmp 0x10034fbf
xor eax, eax
test eax, eax
je 0x10035234
xor ebx, ebx
mov edi, ebx
mov dword [ebp - 0x1ec], edi
cmp dword [ebp - 0x1d0], ebx
jbe 0x100351e4
mov ebx, 0x80004005
mov dword [ebp - 0x1cc], 0x44
mov eax, dword [ebp - 0x1d8]
lea ecx, [ebp - 0x1e4]
mov edx, dword [ebp - 0x1fc]
push ecx
lea ecx, [ebp - 0x1e8]
mov eax, dword [eax + edi*8]
push ecx
push eax
mov ecx, esi
mov dword [ebp - 0x1c8], eax
call fcn.100348bd
test eax, eax
js 0x1003503f
mov esi, dword [ebp - 0x1e8]
xor eax, eax
test esi, esi
je 0x1003503f
mov edx, dword [ebp - 0x1e4]
mov ecx, edx
cmp dword [ecx], 0x3001001f
je 0x10035049
inc eax
add ecx, 0x10
cmp eax, esi
jb 0x1003502f
mov ebx, 0x8004011b
jmp 0x10035234
add eax, eax
mov eax, dword [edx + eax*8 + 8]
mov dword [ebp - 0x1d4], eax
test eax, eax
je 0x1003503f
push 0x1f
pop edx
mov ecx, eax
call fcn.10061f24
lea esi, [eax + eax]
push esi
push dword [ebp - 0x1d4]
lea eax, [ebp - 0x118]
push eax
call sub.msvcrt.dll_memcpy
xor eax, eax
lea edx, [ebp - 0x118]
mov word [ebp + esi - 0x118], ax
add esp, 0xc
mov eax, dword [ebp - 0x1c8]
mov esi, dword [ebp - 0x1f8]
mov ecx, esi
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x1dc]
push eax
push edi
call fcn.10033987
mov edx, dword [ebp - 0x1dc]
cmp edx, edi
je 0x100350d9
mov eax, edi
sub eax, edx
imul eax, eax, 0x44
push eax
imul eax, edx, 0x44
add eax, esi
push eax
push dword [ebp - 0x1c4]
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x1dc]
add esp, 0xc
imul eax, edx, 0x44
push 0x11
pop ecx
add eax, esi
lea esi, [ebp - 0x118]
mov edi, eax
mov dword [ebp - 0x1d4], eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x1ec]
cmp edx, edi
je 0x1003511b
mov eax, edi
sub eax, edx
imul eax, eax, 0x44
push eax
mov eax, dword [ebp - 0x1d4]
push dword [ebp - 0x1c4]
add eax, 0x44
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [ebp - 0x1f4]
push 0
push 0
push dword [ebp - 0x190]
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x1003514c
push dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x1f8]
mov ecx, esi
call fcn.10035fcf
jmp 0x1003514e
xor eax, eax
test eax, eax
je 0x10035234
mov eax, dword [ebp - 0x1cc]
inc edi
push 0
push 0
push 0
push esi
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x1ec], edi
mov dword [ebp - 0x9c], edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x100351a6
and dword [ebp - 0x1d4], 0
lea eax, [ebp - 0x1d4]
push 0
push eax
push 0xa4
lea eax, [ebp - 0xd0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x100351a8
xor eax, eax
test eax, eax
je 0x10035234
mov ecx, dword [ebp - 0x1e8]
lea edx, [ebp - 0x1e4]
call fcn.100365ea
and dword [ebp - 0x1e4], 0
and dword [ebp - 0x1e8], 0
add dword [ebp - 0x1cc], 0x44
cmp edi, dword [ebp - 0x1d0]
jb 0x10034fec
xor ebx, ebx
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebp - 0x58]
jne 0x1003503f
push ebx
push ebx
push ebx
push esi
mov dword [ebp - 0x50], ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x10035228
push ebx
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x1ec], ebx
push eax
push 0xa4
lea eax, [ebp - 0xd0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, eax
neg ebx
sbb ebx, ebx
not ebx
and ebx, 0x80004005
mov eax, dword [ebp - 0x1c4]
test eax, eax
je 0x10035245
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [ebp - 0x1d8]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x1f8]
test eax, eax
je 0x10035262
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edi, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1e8]
lea edx, [ebp - 0x1e4]
call fcn.100365ea
cmp ebx, 0x80040116
je 0x10035292
cmp ebx, 0x8007000e
je 0x10035292
test ebx, ebx
je 0x10035292
mov ebx, 0x8004011b
push edi
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10087900
mov esp, ebp
pop ebp
ret