Function at 0x1023fd5
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x988
mov eax, dword [0x1030118]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push dword [0x10370c0]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x988], eax
call edi
mov esi, eax
xor ebx, ebx
cmp esi, ebx
jne 0x1023fd7
call fcn.01023d9c
test eax, eax
jne 0x1023fc9
push 4
pop eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0101bc5d
leave
ret 4
push dword [0x10370c0]
call edi
mov esi, eax
cmp esi, ebx
je 0x1023fb5
cmp dword [esi + 0x94], ebx
je 0x1023fe6
xor eax, eax
inc eax
mov dword [esi], eax
jmp 0x1023fb8
push dword [ebp - 0x988]
xor edi, edi
lea eax, [ebp - 0x97c]
inc edi
mov dword [esi + 0x94], edi
mov dword [esi + 0x98], ebx
mov dword [esi + 0x9c], ebx
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xac], ebx
mov dword [esi + 0xa0], ebx
mov dword [esi + 0xb8], ebx
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xb0], ebx
mov dword [esi + 0xc0], ebx
mov dword [esi + 0x1334], ebx
mov dword [esi + 0x133c], ebx
mov byte [esi + 0x121c], bl
push eax
mov dword [ebp - 0x97c], 0x978
call fcn.01023e73
test eax, eax
je 0x1024067
push 0x10
pop eax
mov dword [esi], eax
mov dword [esi + 0x94], ebx
jmp 0x1023fb8
mov eax, dword [ebp - 0x948]
mov dword [esi + 0x1334], eax
mov eax, dword [ebp - 0x944]
mov dword [esi + 0x133c], eax
cmp dword [ebp - 0x974], ebx
je 0x1024057
push dword [ebp - 0x974]
lea eax, [esi + 0x1d4]
push 0x824
push eax
push ebx
call fcn.01024ebd
push esi
call fcn.01026448
mov dword [esi + 0x1328], ebx
mov dword [esi + 0x1340], ebx
mov eax, dword [ebp - 0x940]
mov dword [esi + 0xc4], eax
mov eax, dword [ebp - 0x93c]
mov dword [esi + 0xc8], eax
mov eax, dword [ebp - 0x964]
mov dword [esi + 0x1320], eax
mov eax, dword [ebp - 0x960]
mov dword [esi + 0x1324], eax
mov eax, dword [ebp - 0x96c]
mov dword [esi + 0x132c], eax
mov eax, dword [ebp - 0x968]
mov dword [esi + 0x1330], eax
cmp dword [ebp - 0x978], 2
je 0x102411c
cmp dword [ebp - 0x978], 3
jle 0x1024057
cmp dword [ebp - 0x978], 5
jg 0x1024057
mov eax, dword [ebp - 0x934]
mov dword [esi + 0xa8], eax
mov dword [esi + 0xac], ebx
cmp dword [ebp - 0x938], ebx
je 0x1024156
mov eax, dword [ebp - 0x970]
cmp eax, ebx
je 0x1024156
cmp byte [eax], bl
je 0x1024156
mov dword [esi + 0x9c], edi
mov eax, dword [ebp - 0x938]
mov dword [esi + 0xb0], eax
lea eax, [esi + 0x1d4]
push eax
mov dword [ebp - 0x980], ebx
mov dword [ebp - 0x984], ebx
xor edi, edi
call fcn.01029490
mov dword [esi + 0x1358], eax
cmp eax, ebx
jne 0x102417f
push esi
push 4
jmp 0x10241b2
cmp dword [ebp - 0x930], 0xffffffff
jne 0x10241e0
push ebx
push 0x80
push 4
push ebx
push 1
push 0xc0000000
push eax
call fcn.01025354
mov dword [ebp - 0x930], eax
cmp eax, 0xffffffff
jne 0x10241bb
push esi
push 0x12
call fcn.01023f4c
push eax
call fcn.01026256
mov edi, dword [esi]
jmp 0x10241dc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x10241d2
mov dword [ebp - 0x984], 1
mov dword [ebp - 0x980], 1
cmp edi, ebx
jne 0x102420a
mov eax, dword [ebp - 0x930]
mov dword [esi + 0x5344], eax
push esi
lea eax, [ebp - 0x97c]
push eax
call fcn.01026d54
mov ecx, dword [ebp - 0x930]
mov edi, eax
mov eax, dword [ebp - 0x988]
mov dword [eax + 0x4c], ecx
cmp dword [ebp - 0x980], ebx
je 0x1024225
push dword [ebp - 0x930]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [ebp - 0x930], 0xffffffff
cmp edi, ebx
je 0x102423c
cmp dword [ebp - 0x984], ebx
je 0x102423c
push dword [esi + 0x1358]
call fcn.010252f5
mov dword [esi], edi
mov eax, edi
jmp 0x102405c