Function at 0x100d12d
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 [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor eax, eax
push 0x206
mov word [ebp - 0x20c], ax
xor edi, edi
lea eax, [ebp - 0x20a]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0x20c]
push eax
mov esi, 0x104
push esi
push edi
push ebx
push edi
mov dword [ebp - 0x410], edi
mov dword [0x100f6a4], edi
call dword [sym.imp.KERNEL32.dll_SearchPathW]
cmp eax, edi
je 0x100d3e2
cmp eax, esi
ja 0x100d3e2
push edi
push 0x80
push 3
push edi
xor esi, esi
inc esi
push esi
push 0x80000000
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x104f6c0], eax
cmp eax, 0xffffffff
je 0x100d3e2
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0x64
pop ecx
xor edx, edx
div ecx
push edi
mov dword [0x104f6d4], edi
mov dword [0x104f6cc], edi
mov dword [0x104f6d8], edi
mov dword [0x104f6d0], eax
lea eax, [ebp - 0x414]
push eax
push 2
lea eax, [ebp - 0x408]
push eax
push dword [0x104f6c0]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x100d224
mov dword [0x100f6a4], 0x2bf
jmp 0x100d41f
mov eax, 0xfeff
cmp word [ebp - 0x408], ax
jne 0x100d23a
mov dword [0x100f484], esi
jmp 0x100d250
push esi
push edi
push 0xfffffffffffffffe
push dword [0x104f6c0]
mov dword [0x100f484], edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [0x104f6c4], edi
call fcn.0100c313
mov ebx, 0x100d440
mov dword [0x100f6a0], edi
mov esi, 0x1008380
movzx eax, word [esi]
push eax
call fcn.0100bd68
test eax, eax
je 0x100d286
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
cmp word [esi], di
jne 0x100d26b
xor eax, eax
cmp ax, word [esi]
jne 0x100d371
call fcn.0100c313
xor eax, eax
push 0x2e
mov word [ebp - 0x402], ax
call fcn.0100bd68
mov esi, dword [sym.imp.SHLWAPI.dll_StrToIntW]
jmp 0x100d2f3
lea eax, [ebp - 0x404]
push eax
call fcn.0100bc6b
test eax, eax
je 0x100d350
push dword [ebp - 0x404]
call dword [sym.imp.USER32.dll_IsCharAlphaNumericW]
test eax, eax
je 0x100d350
lea eax, [ebp - 0x404]
push eax
call esi
mov ecx, dword [0x100f6a0]
shl ecx, 4
add ecx, eax
push 0x2e
mov dword [0x100f6a0], ecx
call fcn.0100bd68
test eax, eax
je 0x100d2ae
xor ebx, ebx
lea eax, [ebp - 0x404]
push eax
call fcn.0100bc6b
test eax, eax
je 0x100d350
push dword [ebp - 0x404]
call dword [sym.imp.USER32.dll_IsCharAlphaNumericW]
test eax, eax
je 0x100d350
lea eax, [ebp - 0x404]
push eax
call esi
mov ecx, dword [0x100f6a0]
shl ecx, 4
add ecx, eax
inc ebx
mov dword [0x100f6a0], ecx
cmp ebx, 2
jb 0x100d2f9
cmp ecx, 0x500
je 0x100d35f
mov dword [0x100f6a4], 0x2c3
jmp 0x100d41f
mov dword [0x100f6a4], 0x2c2
jmp 0x100d41f
call fcn.0100c313
push dword [ebp + 0xc]
call fcn.0100d07f
jmp 0x100d41f
movzx eax, word [ebx]
push eax
call fcn.0100bd68
test eax, eax
je 0x100d38c
push ebx
call dword [sym.imp.USER32.dll_CharNextW]
mov ebx, eax
cmp word [ebx], di
jne 0x100d371
cmp word [ebx], di
jne 0x100d350
push 0x34
call fcn.0100bd68
mov esi, eax
call fcn.0100c313
lea eax, [ebp - 0x40c]
push eax
call fcn.0100bc6b
test eax, eax
je 0x100d41f
push dword [ebp - 0x40c]
call fcn.0100bdc0
test eax, eax
je 0x100d41f
push dword [ebp + 0xc]
cmp esi, edi
je 0x100d3d1
mov dword [0x100f6a0], 0x400
jmp 0x100d367
mov dword [0x100f6a0], 0x310
call fcn.0100c3e2
jmp 0x100d41f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x100d450
lea eax, [ebp - 0x400]
push 0xfa
push eax
call fcn.01002803
add esp, 0x10
lea eax, [ebp - 0x400]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov dword [0x104f6c0], edi
mov dword [0x100f6a4], 0x2be
mov eax, dword [0x104f6c0]
cmp eax, edi
pop edi
pop esi
pop ebx
je 0x100d432
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.01002af3
leave
ret 8