Function at 0x1000d7f0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x288
mov eax, dword [0x10025160]
xor eax, esp
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x294]
fld dword [0x1001f610]
mov ecx, dword [esp + 0x298]
fstp dword [esp + 0x28]
push ebx
mov ebx, dword [esp + 0x290]
push ebp
push esi
push edi
xor esi, esi
push 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
xor ebp, ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x14], esi
call fcn.1000bd40
add esp, 4
push eax
push 1
call fcn.1000bd30
mov dword [esp + 0x20], 1
cmp ebp, esi
jne 0x1000db87
push esi
push esi
push esi
push ebx
mov dword [esp + 0x3c], esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x1000db6d
push esi
lea edx, [esp + 0x2c]
push edx
push 0x200
lea eax, [esp + 0xa0]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1000db6d
cmp dword [esp + 0x28], 0x200
jne 0x1000db6d
push 0x200
push esi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp eax, esi
mov dword [esp + 0x18], eax
jne 0x1000d8c9
mov ebp, 8
jmp 0x1000db72
mov eax, dword [esp + 0xc4]
cmp eax, 0xfffffffe
mov dword [esp + 0x14], eax
je 0x1000db56
lea ecx, [ecx]
mov eax, dword [esp + 0x2c]
mov cx, ax
add eax, 1
cmp cx, 0x28
mov dword [esp + 0x2c], eax
ja 0x1000db56
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2a0]
add eax, 1
shl eax, 9
add edx, 0xfffffe00
cmp eax, edx
ja 0x1000db43
push 0
push 0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x1000db4a
mov ecx, dword [esp + 0x18]
push 0
lea eax, [esp + 0x2c]
push eax
push 0x200
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1000db51
cmp dword [esp + 0x28], 0x200
jne 0x1000db51
xor eax, eax
mov dword [esp + 0x34], eax
movzx eax, ax
shl eax, 7
add eax, dword [esp + 0x18]
lea esi, [esp + 0x40]
mov word [eax + 0x3e], 0
cmp word [eax], 0
mov ecx, eax
je 0x1000d990
lea esp, [esp]
mov dl, byte [ecx]
mov byte [esi], dl
add ecx, 2
add esi, 1
cmp word [ecx], 0
jne 0x1000d980
lea ecx, [esp + 0x40]
mov byte [esi], 0
lea esi, [ecx + 1]
lea ebx, [ebx]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x1000d9a0
movzx edx, word [eax + 0x40]
sub ecx, esi
lea ecx, [ecx + ecx + 2]
cmp ecx, edx
jne 0x1000daf9
cmp word [esp + 0x20], 1
jne 0x1000da6c
mov edi, str.WordDocument
lea esi, [esp + 0x40]
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x1000daf9
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x74]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x2a8]
push ecx
push edx
push eax
push ebx
call fcn.1000cf10
mov ebp, eax
mov esi, 1
add esp, 0x18
cmp ebp, esi
jne 0x1000da37
cmp dword [esp + 0x10], 0
jne 0x1000da30
push esi
call fcn.1000bd70
push eax
call fcn.1000bd40
add esp, 8
push eax
push 2
call fcn.1000bd30
mov dword [esp + 0x10], esi
xor ebp, ebp
jmp 0x1000daf9
cmp ebp, 0x7d0
jne 0x8f9d2f5
cmp dword [esp + 0x30], 0
jne 0x1000da65
push ebp
call fcn.1000bd70
push eax
call fcn.1000bd40
add esp, 8
push eax
push 2
call fcn.1000bd30
mov dword [esp + 0x30], esi
xor ebp, ebp
jmp 0x1000daf9
cmp dword [eax + 0x78], 0x1000
jb 0x1000daf9
mov edi, str.Data
lea esi, [esp + 0x40]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x1000dab5
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x74]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x20]
push 1
push edx
mov edx, dword [esp + 0x2ac]
push ecx
push edx
push eax
push ebx
call fcn.1000c710
add esp, 0x1c
jmp 0x1000daf3
mov edi, str.WordDocument
lea esi, [esp + 0x40]
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x1000daf5
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x28]
push edx
lea edx, [esp + 0x48]
push edx
mov edx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x2b0]
push edx
mov edx, dword [eax + 0x74]
push ecx
push edx
push ebx
call fcn.1000c330
add esp, 0x20
mov ebp, eax
test ebp, ebp
jne 0x1000db0e
mov eax, dword [esp + 0x34]
add eax, 1
cmp ax, 4
mov dword [esp + 0x34], eax
jb 0x1000d960
mov eax, dword [esp + 0x2a0]
mov ecx, dword [esp + 0x14]
push eax
push ebx
push ecx
call dword [sym.imp.OleEngine.dll_unsigned_long_int___cdecl_OLENextBBEntry_unsigned_long_int__void___unsigned_long_int_]
add esp, 0xc
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
jne 0x1000db38
mov ebp, 1
jmp 0x1000d8e0
cmp eax, 0xfffffffe
jne 0x1000d8e0
jmp 0x1000db56
mov ebp, 1
jmp 0x1000db56
mov ebp, 2
jmp 0x1000db56
mov ebp, 6
mov edx, dword [esp + 0x18]
push edx
xor esi, esi
push esi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1000db72
mov ebp, 6
mov eax, dword [esp + 0x20]
add eax, 1
cmp ax, 3
mov dword [esp + 0x20], eax
jb 0x1000d855
cmp ebp, 1
jne 0x1000dbad
cmp dword [esp + 0x10], esi
jne 0x1000dba9
push ebp
call fcn.1000bd70
push eax
call fcn.1000bd40
add esp, 8
push eax
push 2
call fcn.1000bd30
xor eax, eax
jmp 0x1000dbaf
mov eax, ebp
mov ecx, dword [esp + 0x294]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call main
add esp, 0x800288
ret