Function at 0x1000b180
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004be18
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x1005d500]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, edx
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x34], 0
jb 0x1000b1c7
mov eax, dword [esi]
jmp 0x1000b1c9
mov eax, esi
mov edi, dword [sym.imp.WININET.dll_GetUrlCacheEntryInfoA]
lea edx, [ebp - 0x34]
push edx
push 0
push eax
call edi
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x1000b207
push eax
call fcn.10034252
add esp, 4
cmp dword [esi + 0x14], 0x10
mov ebx, eax
jb 0x1000b1f2
mov esi, dword [esi]
lea eax, [ebp - 0x34]
push eax
push ebx
push esi
call edi
test eax, eax
jne 0x1000b20e
push ebx
call fcn.10032d80
add esp, 4
xor al, al
jmp 0x1000b3ed
mov esi, dword [ebx + 8]
xor edi, edi
mov eax, esi
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0x2c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000b226
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.100028b0
push ebx
mov dword [ebp - 4], edi
call fcn.10032d80
mov eax, dword [ebp - 0x2c]
add esp, 4
cmp dword [ebp - 0x18], 0x10
jae 0x1000b251
lea eax, [ebp - 0x2c]
push edi
push 0x80
push 3
push edi
push edi
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
lea ecx, [ebp - 0x48]
mov ebx, eax
push ecx
push ebx
mov dword [ebp - 0x48], edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
lea edx, [edi + 1]
push edx
call fcn.10034252
add esp, 4
push 0
mov esi, eax
lea eax, [ebp - 0x30]
push eax
push edi
push esi
push ebx
mov dword [ebp - 0x30], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.1004abe8
push str.charsetutf_8
push eax
call fcn.10036580
add esp, 0xc
test eax, eax
je 0x1000b2ec
mov eax, esi
call fcn.1000b0e0
mov edi, eax
test edi, edi
je 0x1000b2ec
push esi
call fcn.10032d80
mov eax, edi
add esp, 4
mov esi, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000b2e0
sub eax, edx
mov dword [ebp - 0x30], eax
push 0x2801
call fcn.10034252
push 0x2801
mov ebx, eax
push 0
push ebx
mov dword [ebp - 0x3c], ebx
call fcn.10037e20
mov edx, dword [ebp - 0x30]
xor edi, edi
add esp, 0x10
xor eax, eax
mov dword [ebp - 0x38], edi
test edx, edx
jle 0x1000b3c6
lea ecx, [ecx]
cmp eax, 0x2800
jge 0x1000b3c6
mov cl, byte [eax + esi]
inc eax
cmp cl, 0x3c
jne 0x1000b34f
cmp eax, edx
jge 0x1000b3c6
lea esp, [esp]
mov cl, byte [eax + esi]
inc eax
cmp cl, 0x3e
je 0x1000b3be
cmp eax, edx
jl 0x1000b340
jmp 0x1000b3c6
test cl, cl
js 0x1000b35e
movsx edx, cl
cmp edx, 0x80
jl 0x1000b3bb
mov dl, byte [eax + esi]
movsx di, dl
mov ebx, 0xff
and di, bx
movsx bx, cl
shl bx, 8
or di, bx
movzx edi, di
mov ebx, 0x8140
inc eax
cmp di, bx
jb 0x1000b390
mov ebx, 0xa0fe
cmp di, bx
jbe 0x1000b3a0
add edi, 0x55c0
mov ebx, 0x5460
cmp di, bx
ja 0x1000b3b5
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x3c]
mov byte [edi + ebx], cl
mov byte [edi + ebx + 1], dl
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x1000b3bb
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x30]
cmp eax, edx
jl 0x1000b320
push esi
call fcn.10032d80
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
add esp, 4
cmp dword [ebp - 0x18], 0x10
mov dword [eax], ebx
mov dword [ecx], edi
jb 0x1000b3eb
mov edx, dword [ebp - 0x2c]
push edx
call fcn.10032d80
add esp, 4
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10034d1a
mov esp, ebp
pop ebp
ret 4