Function at 0x10003d20
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x10054040]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
mov esi, ecx
mov ebx, edx
push 0x1005003c
push esi
mov dword [ebp - 0x4c], ebx
call fcn.1002de4a
add esp, 8
mov dword [ebp - 0x44], eax
test eax, eax
jne 0x10003d62
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100228cb
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x3c]
push eax
push esi
call fcn.1002edf8
mov eax, dword [ebx + 4]
add esp, 8
mov edx, dword [ebx]
mov ecx, eax
mov edi, dword [ebp - 0x28]
sub ecx, edx
shr edi, 1
sar ecx, 1
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x40], eax
cmp edi, ecx
jae 0x10003d8e
lea eax, [edx + edi*2]
jmp 0x10003dc0
jbe 0x10003dc3
mov eax, dword [ebx + 8]
sub eax, edx
sar eax, 1
cmp edi, eax
jbe 0x10003da6
push ecx
push edi
mov ecx, ebx
call fcn.1001e8c0
jmp 0x10003dc3
mov eax, edi
sub eax, ecx
lea esi, [eax + eax]
push esi
push 0
push dword [ebp - 0x40]
call fcn.100255e0
mov eax, dword [ebp - 0x40]
add esp, 0xc
add eax, esi
mov dword [ebx + 4], eax
push dword [ebp - 0x44]
push edi
push 2
push dword [ebx]
call fcn.1003036d
add esp, 0x10
xor esi, esi
xor edx, edx
test edi, edi
je 0x10003e01
nop dword [eax + eax]
mov eax, dword [ebx]
lea edx, [eax + esi*2]
inc esi
mov ax, word [edx]
mov ch, al
mov cl, ah
mov eax, esi
mov word [edx], cx
xor ecx, ecx
cdq
cmp edx, ecx
jl 0x10003de0
jg 0x10003dff
cmp eax, edi
jb 0x10003de0
xor edx, edx
cmp byte [ebp + 8], 0
jne 0x10003f0a
mov eax, dword [ebx + 4]
mov esi, dword [ebx]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 0x1186040
jne 0x10003f0a
xor ecx, ecx
test edx, edx
jb 0x10003f0a
ja 0x10003e34
test edi, edi
je 0x10003f0a
cmp word [esi + ecx*2], 0
jl 0x10003e52
inc ecx
mov eax, ecx
cdq
test edx, edx
jl 0x10003e34
jg 0x10003f0a
cmp eax, edi
jb 0x10003e34
jmp 0x10003f0a
xor ecx, ecx
cmp edi, 0x20
jb 0x10003edd
lea eax, [edi - 1]
lea eax, [esi + eax*2]
cmp esi, ebx
ja 0x10003e6b
cmp eax, ebx
jae 0x10003edd
movaps xmm2, xmmword [0x100502e0]
mov eax, edi
and eax, 0xffffffe0
mov edi, 0x20
mov ebx, eax
nop
movups xmm0, xmmword [edi + esi - 0x20]
lea edi, [edi + 0x40]
add ecx, 0x20
movaps xmm1, xmm2
mov eax, ecx
paddw xmm1, xmm0
cdq
movups xmmword [edi + esi - 0x60], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [edi + esi - 0x50]
paddw xmm1, xmm0
movups xmmword [edi + esi - 0x50], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [edi + esi - 0x40]
paddw xmm1, xmm0
movups xmmword [edi + esi - 0x40], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [edi + esi - 0x30]
paddw xmm1, xmm0
movups xmmword [edi + esi - 0x30], xmm1
test edx, edx
jl 0x10003e80
jg 0x10003ed7
cmp eax, ebx
jb 0x10003e80
mov edi, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x4c]
mov eax, ecx
xor esi, esi
cdq
cmp edx, esi
jg 0x10003f0a
jl 0x10003eec
cmp eax, edi
jae 0x10003f0a
mov edx, 0x178
mov eax, dword [ebx]
add word [eax + ecx*2], dx
inc ecx
mov eax, ecx
cdq
cmp edx, esi
mov edx, 0x178
jl 0x10003ef1
jg 0x10003f0a
cmp eax, edi
jb 0x10003ef1
push dword [ebp - 0x44]
call fcn.1002e2e9
mov ecx, dword [ebp - 8]
add esp, 4
xor ecx, ebp
mov al, 1
pop edi
pop esi
pop ebx
call fcn.100228cb
mov esp, ebp
pop ebp
ret