Function at 0x1008ef7
Capabilities:
Create thread
Get file size

Disassembly:
push ecx
push ecx
push ebp
push esi
mov esi, dword [esp + 0x14]
xor eax, eax
mov ax, word [esi]
push edi
xor ebp, ebp
mov dword [esp + 0xc], ebp
push eax
call dword [sym.imp.msvcrt.dll_iswascii]
test eax, eax
pop ecx
mov eax, esi
jne 0x1008f1e
mov eax, 0x1004a14
push ebx
mov ebx, dword [sym.imp.msvcrt.dll_wprintf]
push eax
push 0x10049f8
call ebx
push 0x1004660
call ebx
add esp, 0xc
push dword [esp + 0x20]
call fcn.01008b4a
push 8
xor eax, eax
pop ecx
mov edi, 0x100a414
rep stosd dword es:[edi], eax
mov dword [0x100a438], ebp
mov dword [0x100f440], ebp
mov dword [0x100a408], ebp
mov eax, 0x100a450
mov dword [eax + 4], ebp
mov dword [eax], ebp
mov dword [eax + 0x38], ebp
mov dword [eax + 0x18], ebp
mov dword [eax + 0x1c], ebp
mov dword [eax + 0x20], ebp
mov dword [eax + 0x24], ebp
mov dword [eax + 0x28], ebp
mov dword [eax + 0x2c], ebp
mov dword [eax + 0x30], ebp
add eax, 0x50
cmp eax, 0x100f450
jl 0x1008f63
push ebp
push 0x68000000
push 3
push ebp
push 3
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
jne 0x1008fbf
push 0x10049cc
call fcn.01009295
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1009242
push ebp
push ebp
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov edi, eax
cmp edi, ebp
mov dword [esp + 0x20], edi
jne 0x1008fdd
push 0x1004988
jmp 0x1009225
mov esi, 0x100a414
push ebp
push ebp
push edi
push 0x1008e83
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebp
mov dword [esi], eax
je 0x100902d
add esi, 4
cmp esi, 0x100a434
jl 0x1008fe2
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x1009037
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x1009037
push 0x1004958
jmp 0x1009225
push 0x1004928
jmp 0x1009225
mov ecx, dword [0x100a410]
mov eax, dword [esp + 0x14]
shr esi, cl
mov ecx, dword [0x100a40c]
shl eax, cl
mov ecx, dword [0x100a434]
mov edi, 0x100a454
add esi, eax
lea eax, [ecx + esi - 1]
cdq
idiv ecx
mov dword [0x100a438], esi
mov dword [0x100f440], eax
jmp 0x1009072
mov ecx, dword [0x100a434]
mov eax, dword [esp + 0x1c]
mov dword [edi + 4], eax
mov eax, dword [0x100a43c]
imul eax, ecx
push 4
push 0x1000
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
cmp eax, ebp
mov dword [edi], eax
je 0x10090df
push ebp
push ebp
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateEventW]
cmp eax, ebp
mov dword [edi + 0x34], eax
je 0x10090e9
lea esi, [edi - 0x14]
call fcn.01008ba3
add edi, 0x50
cmp edi, 0x100f454
jl 0x100906c
push 0x10048ec
call fcn.010092ec
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
push ebp
push 0xc8
push dword [0x100a488]
call edi
mov esi, 0x102
jmp 0x1009116
push 0x10048bc
jmp 0x1009225
push 0x100488c
jmp 0x1009225
mov eax, dword [0x100a408]
imul eax, eax, 0x64
cdq
idiv dword [0x100f440]
push eax
call fcn.01009335
push ebp
push 0xc8
push dword [0x100a488]
call edi
cmp eax, esi
je 0x10090f3
cmp eax, ebp
jne 0x1009220
mov esi, 0x100a4b8
push ebp
push 0xffffffffffffffff
push dword [esi + 0x20]
call edi
test eax, eax
jne 0x1009220
mov eax, dword [esi]
add dword [0x100a468], eax
mov eax, dword [esi + 4]
add dword [0x100a46c], eax
mov eax, dword [esi + 8]
add dword [0x100a470], eax
mov eax, dword [esi + 0xc]
add dword [0x100a474], eax
mov eax, dword [esi + 0x14]
mov edx, dword [0x100a47c]
cmp edx, eax
mov ecx, dword [esi + 0x10]
ja 0x1009189
jb 0x1009176
mov edx, dword [0x100a478]
cmp edx, ecx
jae 0x1009189
mov dword [0x100a478], ecx
mov dword [0x100a47c], eax
mov eax, dword [esi + 0x18]
mov dword [0x100a480], eax
add esi, 0x50
cmp esi, 0x100f468
jl 0x1009127
call fcn.0100936b
push 0x1004660
call ebx
push dword [0x100a468]
push 0x1004640
call ebx
push dword [0x100a46c]
push 0x1004618
call ebx
push dword [0x100a470]
push 0x10045e4
call ebx
push dword [0x100a474]
push 0x10045b4
call ebx
push dword [0x100a480]
push dword [0x100a47c]
push dword [0x100a478]
push 0x1004568
call ebx
push 0x100455c
call ebx
mov ecx, dword [esp + 0x5c]
xor edx, edx
add esp, 0x38
inc edx
cmp ecx, ebp
je 0x100921a
cmp dword [0x100a46c], ebp
jne 0x1009216
cmp dword [0x100a474], ebp
jne 0x1009216
mov eax, edx
jmp 0x1009218
xor eax, eax
mov dword [ecx], eax
mov dword [esp + 0x10], edx
jmp 0x100922a
push 0x1004848
call fcn.01009295
push dword [esp + 0x1c]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
cmp dword [esp + 0x20], ebp
je 0x1009242
push dword [esp + 0x1c]
call edi
mov esi, 0x100a488
pop ebx
mov eax, dword [esi - 0x34]
cmp eax, ebp
je 0x100925c
push 0x8000
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, dword [esi]
cmp eax, ebp
je 0x1009265
push eax
call edi
add esi, 0x50
cmp esi, 0x100f488
jl 0x1009248
mov esi, 0x100a414
mov eax, dword [esi]
cmp eax, ebp
je 0x100927e
push eax
call edi
add esi, 4
cmp esi, 0x100a434
jl 0x1009275
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebp
pop ecx
pop ecx
ret 0xc