Function at 0x10009db0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30c
mov eax, dword [0x10049378]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push 0
push 0x80000020
push 3
push 0
push 1
push 0x80000000
push 0x10702270
mov dword [0x1004b0ec], 0
mov dword [0x100ec720], 0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, dword [0x10442f18]
push 0
push 0
shl edi, 5
mov ebx, eax
push dword [edi + ecx + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [0x10442f18]
xor ecx, ecx
xor esi, esi
cmp cx, word [edi + eax + 0x1c]
jae 0x10009e4f
push 0
movzx eax, si
push 0x1004aa38
lea eax, [eax + eax*4]
push 0xa
lea eax, [ebp + eax*2 - 0x2d4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [0x10442f18]
inc esi
cmp si, word [edi + eax + 0x1c]
jb 0x10009e24
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x10442f18]
mov cx, word [edi + eax + 0x14]
mov word [0x100ec724], cx
mov ax, word [edi + eax + 0x16]
mov word [0x103058e8], ax
test byte [0x100ec724], 3
je 0x10009e86
inc cx
mov word [0x100ec724], cx
jmp 0x10009e72
mov eax, dword [0x103058e8]
imul eax, dword [0x100ec724]
movzx ebx, ax
push 0x428
push 0x42
mov dword [ebp - 0x2f4], ebx
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x304], eax
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp dword [0x1004b0d8], 0
mov esi, eax
mov dword [ebp - 0x2fc], esi
mov dword [esi], 0x28
movzx ecx, word [0x100ec724]
mov dword [esi + 4], ecx
movzx ecx, word [0x103058e8]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], 0x80001
jne 0x10009f37
push dword [0x1004afdc]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, 0x107024f1
lea edx, [eax + 5]
jmp 0x10009f00
movzx eax, byte [edx - 1]
mov byte [ecx + 1], al
movzx eax, byte [edx]
mov byte [ecx], al
movzx eax, byte [edx + 1]
mov byte [ecx - 1], al
add ecx, 4
lea edx, [edx + 4]
cmp ecx, 0x107028f1
jl 0x10009f00
push dword [0x1004afdc]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x1004b0d8], 1
mov ecx, 0x107024f0
lea edx, [esi + 0x28]
nop
mov eax, dword [ecx]
add ecx, 4
mov dword [edx], eax
lea edx, [edx + 4]
cmp ecx, 0x107028f0
jl 0x10009f40
movzx esi, bx
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x2e8], eax
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x2e0], eax
push esi
push 0x56
push eax
call fcn.1000fed0
mov ecx, dword [0x10442f18]
xor edx, edx
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x2ec], edx
cmp ax, word [edi + ecx + 0x1c]
jae 0x1000a173
lea eax, [edi + 0x1c]
mov dword [ebp - 0x2f8], eax
movzx eax, dx
lea eax, [eax + eax*4]
add eax, eax
mov dword [ebp - 0x2e4], eax
movsx eax, word [ebp + eax - 0x2d0]
lea ecx, [eax + eax*2]
mov eax, dword [0x10442f20]
lea eax, [eax + ecx*4]
push eax
call fcn.1000114a
lea edi, [eax + eax*2]
mov eax, dword [0x10442f48]
add esp, 4
push dword [eax + edi*8 + 4]
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [ebp - 0x300], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push 0
push 0x80000020
push 3
push 0
push 1
push 0x80000000
mov ebx, eax
push 0x10702270
mov dword [ebp - 0x2f0], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, dword [0x10442f48]
push 0
push 0
push dword [ecx + edi*8]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [0x10442f48]
push 0
push 0x1004aa38
push dword [eax + edi*8 + 4]
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movzx eax, word [ebx]
xor edx, edx
mov dword [ebp - 0x2d8], edx
mov dword [ebp - 0x308], eax
test eax, eax
jle 0x1000a139
xor eax, eax
mov eax, dword [ebx + eax*4 + 8]
mov cl, byte [eax + ebx]
cmp cl, 0xff
je 0x1000a123
lea esi, [ebp - 0x2d2]
add esi, dword [ebp - 0x2e4]
mov dword [ebp - 0x30c], esi
mov dx, word [0x103058e8]
movzx ecx, cl
sub dx, cx
movzx ecx, byte [eax + ebx + 1]
sub dx, word [esi]
add eax, 3
xor esi, esi
movzx edi, dx
mov dword [ebp - 0x2dc], ecx
test ecx, ecx
jle 0x1000a109
mov edx, ecx
lea esp, [esp]
mov ecx, dword [0x100ec724]
mov ebx, dword [ebp - 0x2e4]
add edi, 0xffff
imul ecx, edi
add cx, word [ebp + ebx - 0x2d4]
mov ebx, dword [ebp - 0x2f0]
add cx, word [ebp - 0x2d8]
movzx ecx, cx
cmp cx, word [ebp - 0x2f4]
jae 0x1000a100
mov edx, ecx
mov cl, byte [eax + ebx]
mov ebx, dword [ebp - 0x2e0]
mov byte [edx + ebx], cl
mov ebx, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2dc]
inc esi
movzx ecx, si
inc eax
cmp ecx, edx
jl 0x1000a0b0
mov cl, byte [eax + ebx + 1]
mov esi, dword [ebp - 0x30c]
inc eax
cmp cl, 0xff
jne 0x1000a083
mov edx, dword [ebp - 0x2d8]
inc edx
movzx eax, dx
mov dword [ebp - 0x2d8], edx
cmp eax, dword [ebp - 0x308]
jl 0x1000a061
mov esi, dword [ebp - 0x300]
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov edx, dword [ebp - 0x2ec]
mov eax, dword [0x10442f18]
mov ecx, dword [ebp - 0x2f8]
inc edx
mov dword [ebp - 0x2ec], edx
cmp dx, word [ecx + eax]
jb 0x10009fa1
jmp 0x1000a179
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [0x1004aa2c]
call dword [sym.imp.USER32.dll_GetDC]
push 0
mov esi, eax
mov eax, dword [ebp - 0x2fc]
push eax
push dword [ebp - 0x2e0]
push 4
push eax
push esi
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
push esi
push dword [0x1004aa2c]
mov edi, eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov esi, dword [ebp - 0x304]
push esi
call ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
call esi
push dword [ebp - 0x2e8]
call ebx
push dword [ebp - 0x2e8]
call esi
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1000f362
mov esp, ebp
pop ebp
ret