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

Disassembly:
push 0x44
mov eax, 0x10042b30
call fcn.1002eac6
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x14]
xor ebx, ebx
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ebx
jb 0x10002e76
mov eax, dword [esi]
jmp 0x10002e78
mov eax, esi
mov edi, dword [sym.imp.WININET.dll_GetUrlCacheEntryInfoA]
lea ecx, [ebp - 0x3c]
push ecx
push ebx
push eax
call edi
cmp dword [ebp - 0x3c], ebx
ja 0x10002e92
xor al, al
jmp 0x10003048
push dword [ebp - 0x3c]
call fcn.1002bb4d
cmp dword [esi + 0x14], 0x10
pop ecx
mov dword [ebp - 0x38], eax
jb 0x10002ea6
mov esi, dword [esi]
lea ecx, [ebp - 0x3c]
push ecx
push eax
push esi
call edi
test eax, eax
jne 0x10002ebd
push dword [ebp - 0x38]
call fcn.1002a660
pop ecx
jmp 0x10002e8b
mov esi, dword [ebp - 0x38]
push dword [esi + 8]
lea ecx, [ebp - 0x2c]
call fcn.10002b9d
push esi
mov dword [ebp - 4], ebx
call fcn.1002a660
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
pop ecx
jae 0x10002ee1
lea eax, [ebp - 0x2c]
push ebx
push 0x80
push 3
push ebx
push ebx
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
lea ecx, [ebp - 0x50]
push ecx
push eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x50], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
lea eax, [esi + 1]
push eax
call fcn.1002bb4d
pop ecx
push ebx
mov edi, eax
lea eax, [ebp - 0x34]
push eax
push esi
push edi
push dword [ebp - 0x38]
mov dword [ebp - 0x34], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call fcn.100427a8
mov dword [esp], str.charsetutf_8
push eax
call fcn.1002f030
pop ecx
pop ecx
test eax, eax
je 0x10002f6d
mov ecx, dword [ebp - 0x4c]
push edi
call fcn.10002542
mov esi, eax
cmp esi, ebx
je 0x10002f6d
push edi
call fcn.1002a660
push esi
mov edi, esi
call fcn.1002dd10
pop ecx
pop ecx
mov dword [ebp - 0x34], eax
mov esi, dword [ebp - 0x40]
inc esi
push esi
call fcn.1002bb4d
push esi
xor esi, esi
mov ebx, eax
push esi
push ebx
call fcn.1002eb70
xor eax, eax
add esp, 0x10
cmp dword [ebp - 0x34], eax
jle 0x10003029
cmp eax, dword [ebp - 0x40]
jge 0x10003029
mov cl, byte [eax + edi]
inc eax
mov byte [ebp - 0x2d], cl
cmp cl, 0x3c
jne 0x10002fbb
cmp eax, dword [ebp - 0x34]
jge 0x10003029
mov cl, byte [eax + edi]
inc eax
cmp cl, 0x3e
je 0x10003020
cmp eax, dword [ebp - 0x34]
jl 0x10002fab
jmp 0x10003020
test cl, cl
js 0x10002fca
movsx ecx, cl
cmp ecx, 0x80
jl 0x10003020
mov cl, byte [eax + edi]
mov byte [ebp - 0x2e], cl
movsx cx, cl
mov edx, 0xff
and cx, dx
movsx dx, byte [ebp - 0x2d]
shl dx, 8
or cx, dx
movzx ecx, cx
mov edx, 0x8140
inc eax
cmp cx, dx
jb 0x10003000
mov edx, 0xa0fe
cmp cx, dx
jbe 0x10003010
add ecx, 0x55c0
mov edx, 0x5460
cmp cx, dx
ja 0x10003020
mov cl, byte [ebp - 0x2d]
mov byte [esi + ebx], cl
mov cl, byte [ebp - 0x2e]
mov byte [esi + ebx + 1], cl
add esi, 2
cmp eax, dword [ebp - 0x34]
jl 0x10002f91
push edi
call fcn.1002a660
mov eax, dword [ebp - 0x44]
pop ecx
mov dword [eax], ebx
mov eax, dword [ebp - 0x48]
push 0
push 1
lea ecx, [ebp - 0x2c]
mov dword [eax], esi
call fcn.100012ee
mov al, 1
call fcn.1002eb49
ret 0x10