Function at 0x100d4760
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x3c
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x50]
push edi
mov dword [eax], 0
push esi
mov dword [ecx], 0
call fcn.1007e283
lea edi, [eax + eax + 2]
mov dword [esp + 0x40], eax
push edi
call fcn.1007e238
mov ebx, eax
push esi
push ebx
mov dword [esp + 0x30], ebx
call fcn.1007e6d0
push ebx
call fcn.10127da6
push edi
call fcn.1007e238
mov edi, eax
push esi
push edi
mov dword [esp + 0x3c], edi
call fcn.1007e6d0
push edi
call fcn.1007ec7d
mov ebx, dword [esp + 0x74]
mov ebp, dword [sym.imp.KERNEL32.dll_SetFilePointer]
add esp, 0x24
push 1
push 0
push 0
push ebx
call ebp
cmp eax, 0xffffffff
jne 0x100d47de
or edi, eax
jmp 0x100d47e0
mov edi, eax
push 2
push 0
push 0
push ebx
call ebp
cmp eax, 0xffffffff
jne 0x100d47f2
or esi, eax
jmp 0x100d47f4
mov esi, eax
push 0
push 0
push edi
push ebx
call ebp
mov edx, esi
mov ebp, 0xc800
and edx, 1
xor ebx, ebx
sub esi, edx
mov dword [esp + 0x18], ebp
cmp esi, ebp
mov dword [esp + 0x2c], esi
jae 0x100d481c
mov dword [esp + 0x18], esi
mov ebp, esi
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
lea eax, [ebp + 0xa]
push eax
call fcn.1007e238
mov edi, eax
add esp, 4
mov dword [esp + 0x54], edi
mov dword [esp + 0x34], ebp
lea ecx, [edi + 4]
mov dword [esp + 0x14], ecx
mov eax, esi
mov esi, dword [esp + 0x10]
sub eax, esi
sub eax, ebx
cmp ebp, eax
jbe 0x100d485b
mov dword [esp + 0x18], eax
mov ebp, eax
mov esi, dword [esp + 0x14]
test ebx, ebx
jbe 0x100d48b9
mov ecx, dword [esp + 0x34]
lea eax, [ebx + ebp]
cmp eax, ecx
jbe 0x100d48b2
mov dword [esp + 0x34], eax
add eax, 0xa
push eax
call fcn.1007e238
lea ecx, [ebx + 0xa]
mov ebp, eax
mov edx, ecx
mov esi, edi
mov edi, ebp
mov eax, dword [esp + 0x58]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.1007de95
add esp, 8
mov dword [esp + 0x54], ebp
mov edi, dword [esp + 0x54]
add ebp, 4
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
lea esi, [ecx + ebx]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
push 0
add edx, ebx
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test ebp, ebp
je 0x100d48fc
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x38]
push 0
push ecx
push ebp
push esi
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x100d48f0
or eax, 0xffffffff
jmp 0x100d48f4
mov eax, dword [esp + 0x38]
cmp eax, ebp
jne 0x100d4bee
test ebx, ebx
jne 0x100d4937
mov eax, dword [esp + 0x14]
mov ecx, 0xa
cmp word [eax], 0xd
je 0x100d493c
cmp word [eax + 2], cx
je 0x100d493c
cmp byte [eax], 0xff
jne 0x100d492c
cmp byte [eax + 1], 0xfe
jne 0x100d492c
mov word [edi + 2], 0xd
mov word [edi + 4], cx
jmp 0x100d493c
mov word [edi], 0xd
mov word [edi + 2], cx
jmp 0x100d493c
mov ecx, 0xa
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
add ebx, ebp
add eax, ebx
cmp eax, edx
jb 0x100d4950
add ebp, esi
jmp 0x100d496e
lea ebp, [esi + ebp - 4]
cmp word [ebp], 0xd
jne 0x100d4961
cmp word [ebp + 2], cx
je 0x100d4966
sub ebp, 2
jmp 0x100d4954
cmp ebp, esi
jbe 0x100d4b6e
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov word [ebp + 2], cx
mov eax, ebp
xor ecx, ecx
sub eax, ebx
cmp edx, ecx
mov word [ebp], 0xd
mov word [ebp + 4], cx
mov dword [esp + 0x48], eax
jne 0x100d4a2c
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x28]
lea edx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x24]
push ecx
push edx
shr eax, 1
push ebp
push eax
push ebx
call fcn.100d4ca0
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x100d4b5e
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
sub eax, ebx
mov dword [esp + 0x30], 1
add eax, ecx
mov ecx, dword [esp + 0x24]
mov dword [edx], eax
lea eax, [ecx + ecx]
mov ecx, dword [esp + 0x5c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x100d4b5e
mov bx, word [eax + esi]
mov edi, dword [esp + 0x68]
mov word [eax + esi], 0
mov eax, dword [esp + 0x64]
mov edx, dword [edx]
push edi
push eax
push esi
push edx
call ecx
mov eax, dword [esp + 0x34]
add esp, 0x10
mov word [esi + eax*2], bx
mov eax, dword [edi]
test eax, eax
jne 0x100d4c16
jmp 0x100d4b5a
shr eax, 1
mov edi, ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x44], eax
je 0x100d4b17
cmp word [edi], 0x5b
jne 0x100d4b01
mov esi, edi
mov dword [esp + 0x40], esi
mov ax, word [edi - 2]
cmp ax, 0x20
je 0x100d4a75
push eax
call fcn.1008b272
add esp, 4
test eax, eax
jne 0x100d4a7a
mov ax, word [edi - 2]
cmp ax, 0xd
je 0x100d4a7a
cmp ax, 0xa
je 0x100d4a7a
add edi, 0xfffffffe
jmp 0x100d4a4e
cmp word [edi - 4], 0xd
jne 0x100d4af0
mov ebx, 0xa
cmp word [edi - 2], bx
jne 0x100d4af0
mov ax, word [esi + 2]
add esi, 2
cmp ax, 0x5d
je 0x100d4ab2
cmp ax, 0xd
jne 0x100d4aa5
cmp word [esi + 2], bx
je 0x100d4ab2
mov ax, word [esi + 2]
add esi, 2
cmp ax, 0x5d
jne 0x100d4a99
cmp word [esi], 0x5d
jne 0x100d4af0
mov ax, word [esi + 2]
add esi, 2
cmp ax, 0x20
je 0x100d4ab8
push eax
call fcn.1008b272
add esp, 4
test eax, eax
jne 0x100d4ae0
mov ax, word [esi]
cmp ax, 0xd
je 0x100d4ae0
cmp ax, bx
jne 0x100d4ab8
cmp word [esi], 0xd
jne 0x100d4af0
cmp word [esi + 2], bx
je 0x100d4b95
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
lea edi, [ecx + 2]
jmp 0x100d4b04
add edi, 2
mov ecx, dword [esp + 0x24]
inc ecx
cmp ecx, eax
mov dword [esp + 0x24], ecx
jb 0x100d4a3e
xor ecx, ecx
mov eax, dword [esp + 0x5c]
mov edx, ebp
sub edx, ebx
mov esi, dword [eax]
add esi, edx
mov dword [eax], esi
mov eax, dword [esp + 0x60]
cmp eax, ecx
je 0x100d4b5a
mov edi, dword [esp + 0x68]
mov si, word [ebp]
mov eax, dword [esp + 0x64]
mov word [ebp], cx
mov ecx, dword [esp + 0x10]
push edi
push eax
push ebx
push ecx
call dword [esp + 0x70]
mov word [ebp], si
mov eax, dword [edi]
add esp, 0x10
test eax, eax
jne 0x100d4c40
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
add eax, edx
xor ebx, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x100d4c6e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jae 0x100d4c6e
mov ebp, dword [esp + 0x18]
mov esi, ecx
jmp 0x100d4847
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
mov edx, edi
mov dword [esp + 0x28], 1
mov ecx, dword [eax]
sub edx, ebx
sub edx, 4
add ecx, edx
mov dword [eax], ecx
mov eax, dword [esp + 0x60]
test eax, eax
je 0x100d4b5a
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov si, word [edi - 4]
push ebx
push eax
push ecx
push edx
mov word [edi - 4], 0
call dword [esp + 0x70]
mov word [edi - 4], si
mov eax, dword [ebx]
add esp, 0x10
test eax, eax
jne 0x100d4c40
jmp 0x100d4b5a
mov ecx, dword [esp + 0x20]
push ecx
call fcn.1007de95
mov edx, dword [esp + 0x20]
push edx
call fcn.1007de95
push edi
call fcn.1007de95
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
push ebp
call fcn.1007de95
mov eax, dword [esp + 0x20]
push eax
call fcn.1007de95
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.1007de95
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov edx, dword [esp + 0x20]
push edx
call fcn.1007de95
mov eax, dword [esp + 0x20]
push eax
call fcn.1007de95
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.1007de95
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov edx, dword [esp + 0x20]
push edx
call fcn.1007de95
mov eax, dword [esp + 0x20]
push eax
call fcn.1007de95
push edi
call fcn.1007de95
mov ecx, dword [esp + 0x3c]
add esp, 0xc
xor eax, eax
pop edi
pop esi
test ecx, ecx
pop ebp
pop ebx
setne al
add esp, 0x3c
ret