Function at 0x10001000
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10006b68
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
push esi
push edi
mov eax, dword [section..data]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x3a]
mov byte [esp + 0x13], 0
xor edi, edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x68], edi
push 0x10009864
mov dword [esp + 0x20], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [0x10009890], 0
je 0x10001096
push 0x10009864
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x3a]
cmp eax, ecx
je 0x100012d2
cmp eax, edi
jmp 0x100012c7
lea eax, [esp + 0x2c]
call fcn.100015b0
cmp byte [esp + 0x38], 0
jge 0x100010af
lea esi, [esp + 0x2c]
call fcn.10004fd0
mov edx, dword [esp + 0x2c]
push 0x1000719c
push edx
call sub.msvcrt.dll_fopen
mov esi, eax
add esp, 8
cmp esi, edi
setne bl
mov dword [esp + 0x20], esi
test bl, bl
je 0x1000128d
push esi
push 1
lea eax, [esp + 0x1c]
push 5
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
test eax, eax
je 0x100012f5
mov cl, byte [esp + 0x13]
mov al, byte [esp + 0x14]
test cl, cl
jne 0x10001102
cmp al, 0x99
jne 0x10001289
movzx eax, al
add eax, 0xffffff67
cmp eax, 0x5c
ja 0x1000126c
movzx edx, byte [eax + 0x10001384]
jmp dword [edx*4 + 0x10001364]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x10001265
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
cmp dword [esp + 0xc], edx
jb 0x10001276
add edx, ecx
cmp dword [esp + 0xc], edx
jb 0x10001280
inc edi
add eax, 0x28
cmp edi, esi
jb 0x1000125b
xor eax, eax
pop edi
pop esi
ret
and al, 8
call fcn.10001243
pop ecx
pop ecx
mov ecx, eax
test ecx, ecx
jne 0x10001299
invalid
ret
mov eax, dword [ecx + 0x14]
sub eax, dword [ecx + 0xc]
add eax, dword [esp + 4]
add eax, dword [esp + 0xc]
ret
add esi, edi
mov ebx, dword [esi + 0x78]
call fcn.10001203
ljmp 0xe853
sub edi, dword [esi - 0x17aca9f0]
invalid
call dword [ecx]
jo 0x10001329
mov esi, dword [esi + 0x78]
test esi, esi
je 0x10001396
mov ebx, dword [esi + edi + 0x24]
add esi, edi
add ebx, edi
call fcn.10001203
and byte [ebp + 0x468b9cf2], cl
and byte [ebx], al
invalid
adc byte [esi - 0x7b], ah
sal byte [esi + esi*2 - 0x7d], 0x65
cld
add byte [ebx - 0xfba76f9], cl
mov eax, dword [edi]
mov dword [ebp - 0x10], eax
call fcn.10001203
daa
jae 0x1000134c
inc edx
cmp dword [ebp - 0x10], 0
je 0x1000138a
mov eax, dword [ebp - 0x14]
and dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ebx
lock add byte [ecx + 0x5d89f445], cl
clc
mov eax, dword [ebp - 8]
movzx eax, word [eax]
cmp eax, dword [ebp - 4]
jne 0x10001376
mov eax, dword [ebp - 0xc]
push dword [ebp + 0xc]
mov eax, dword [eax]
add eax, dword [ebp + 8]
push eax
call fcn.10001199
pop ecx
test eax, eax
pop ecx
je 0x1000139d
mov eax, dword [esi + 0x18]
inc dword [ebp - 0x10]
add dword [ebp - 8], 2
add dword [ebp - 0xc], 4
dec eax
cmp dword [ebp - 0x10], eax
jbe 0x10001354
mov eax, dword [esi + 0x14]
inc dword [ebp - 4]
dec eax
cmp dword [ebp - 4], eax
jbe 0x10001333
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [ebp - 4]
mov eax, dword [edi + eax*4]
jmp 0x100013da
add eax, dword [ebp + 8]
jmp 0x10001398