Function at 0x1008f2d
Capabilities:
Get file size
Print debug messages
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x414
mov eax, dword [0x100d008]
mov edx, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor esi, esi
xor eax, eax
mov word [ebp - 0x20c], si
mov ecx, 0x81
lea edi, [ebp - 0x20a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0x20c]
push eax
mov edi, 0x104
push edi
push esi
push edx
push esi
mov dword [ebp - 0x410], esi
mov dword [0x100d684], esi
call dword [sym.imp.KERNEL32.dll_SearchPathW]
cmp eax, esi
je 0x10091da
cmp eax, edi
ja 0x10091da
push esi
push 0x80
push 3
push esi
xor edi, edi
inc edi
push edi
push 0x80000000
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [0x104d6a0], eax
je 0x10091da
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0x64
pop ecx
xor edx, edx
div ecx
push esi
mov dword [0x104d6b4], esi
mov dword [0x104d6ac], esi
mov dword [0x104d6b8], esi
mov dword [0x104d6b0], eax
lea eax, [ebp - 0x414]
push eax
push 2
lea eax, [ebp - 0x408]
push eax
push dword [0x104d6a0]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x100901c
mov dword [0x100d684], 0x2bf
jmp 0x1009217
cmp word [ebp - 0x408], 0xfeff
jne 0x100902f
mov dword [section..data], edi
jmp 0x1009045
push edi
push esi
push 0xfffffffffffffffe
push dword [0x104d6a0]
mov dword [section..data], esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [0x104d6a4], esi
call fcn.010081b4
mov ebx, 0x10018d8
mov dword [0x100d680], esi
mov edi, 0x1001918
xor eax, eax
mov ax, word [edi]
push eax
call fcn.01007c18
test eax, eax
je 0x100907d
push edi
call dword [sym.imp.USER32.dll_CharNextW]
mov edi, eax
cmp word [edi], si
jne 0x1009060
cmp word [edi], si
jne 0x100915e
call fcn.010081b4
push 0x2e
mov word [ebp - 0x402], si
call fcn.01007c18
mov edi, dword [sym.imp.SHLWAPI.dll_StrToIntW]
jmp 0x10090ea
lea eax, [ebp - 0x404]
push eax
call fcn.01007b1d
test eax, eax
je 0x10091ce
push dword [ebp - 0x404]
call dword [sym.imp.USER32.dll_IsCharAlphaNumericW]
test eax, eax
je 0x10091ce
lea eax, [ebp - 0x404]
push eax
call edi
mov ecx, dword [0x100d680]
shl ecx, 4
add ecx, eax
push 0x2e
mov dword [0x100d680], ecx
call fcn.01007c18
test eax, eax
je 0x10090a1
xor ebx, ebx
lea eax, [ebp - 0x404]
push eax
call fcn.01007b1d
test eax, eax
je 0x10091ce
push dword [ebp - 0x404]
call dword [sym.imp.USER32.dll_IsCharAlphaNumericW]
test eax, eax
je 0x10091ce
lea eax, [ebp - 0x404]
push eax
call edi
mov ecx, dword [0x100d680]
shl ecx, 4
add ecx, eax
inc ebx
cmp ebx, 2
mov dword [0x100d680], ecx
jb 0x10090f0
cmp ecx, 0x500
je 0x100914f
mov dword [0x100d684], 0x2c3
jmp 0x1009217
call fcn.010081b4
call fcn.01008e84
jmp 0x1009217
xor eax, eax
mov ax, word [ebx]
push eax
call fcn.01007c18
test eax, eax
je 0x100917b
push ebx
call dword [sym.imp.USER32.dll_CharNextW]
mov ebx, eax
cmp word [ebx], si
jne 0x100915e
cmp word [ebx], si
jne 0x10091ce
push 0x34
call fcn.01007c18
mov edi, eax
call fcn.010081b4
lea eax, [ebp - 0x40c]
push eax
call fcn.01007b1d
test eax, eax
je 0x1009217
push dword [ebp - 0x40c]
call fcn.01007c70
test eax, eax
je 0x1009217
cmp edi, esi
je 0x10091bd
mov dword [0x100d680], 0x400
jmp 0x1009154
mov dword [0x100d680], 0x310
call fcn.01008283
jmp 0x1009217
mov dword [0x100d684], 0x2c2
jmp 0x1009217
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10019e8
lea eax, [ebp - 0x400]
push 0xfa
push eax
call fcn.01007dff
add esp, 0x10
lea eax, [ebp - 0x400]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov dword [0x104d6a0], esi
mov dword [0x100d684], 0x2be
mov eax, dword [0x104d6a0]
pop edi
cmp eax, esi
pop esi
pop ebx
je 0x100922a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
call fcn.010092ae
leave
ret 4