Function at 0x10020f40
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006ac3b
mov eax, dword fs:[0]
push eax
mov eax, 0x20a8
call fcn.10067980
mov eax, dword [0x10086014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x20b4], edx
mov esi, ecx
mov dword [ebp - 0x2074], 0
mov dword [ebp - 0x2064], 0
mov dword [ebp - 0x2060], 0xf
mov byte [ebp - 0x2074], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2074]
movaps xmm0, xmmword [0x1007cc80]
push 0
push 0x1007933f
mov dword [ebp - 0x2088], 0x67452301
movups xmmword [ebp - 0x2084], xmm0
call fcn.1000fb90
xorps xmm0, xmm0
movlpd qword [ebp - 0x2058], xmm0
mov dword [ebp - 4], 1
xor bl, bl
cmp dword [esi + 0x14], 8
jb 0x10020fec
mov esi, dword [esi]
push 0x1007a564
lea eax, [ebp - 0x20a4]
push esi
push eax
call fcn.1004db89
mov eax, dword [ebp - 0x20a4]
add esp, 0xc
test eax, eax
je 0x10021219
push eax
push 0x2000
lea eax, [ebp - 0x2010]
push 1
push eax
call fcn.100489c2
add esp, 0x10
mov dword [ebp - 0x20ac], eax
test eax, eax
je 0x10021141
nop dword [eax]
nop dword [eax + eax]
xor ebx, ebx
mov edx, dword [ebp - 0x2064]
lea ecx, [ebp - 0x2010]
mov edi, dword [ebp - 0x2060]
mov esi, eax
sub esi, ebx
mov eax, 0x40
sub eax, edx
cmp esi, eax
cmovae esi, eax
mov eax, edi
add ecx, ebx
sub eax, edx
push esi
push ecx
cmp esi, eax
ja 0x1002109b
lea eax, [edx + esi]
cmp edi, 0x10
mov dword [ebp - 0x2064], eax
lea eax, [ebp - 0x2074]
cmovae eax, dword [ebp - 0x2074]
lea edi, [eax + edx]
push edi
call fcn.100418e0
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x100210b4
mov byte [ebp - 0x20b0], 0
lea ecx, [ebp - 0x2074]
push dword [ebp - 0x20b0]
push esi
call fcn.100134f0
add ebx, esi
cmp dword [ebp - 0x2064], 0x40
jne 0x10021117
lea edx, [ebp - 0x2050]
lea ecx, [ebp - 0x2074]
call fcn.1001ffa0
lea eax, [ebp - 0x2058]
push eax
lea edx, [ebp - 0x2050]
lea ecx, [ebp - 0x2088]
call fcn.1001efb0
add esp, 4
mov dword [ebp - 0x2064], 0
cmp dword [ebp - 0x2060], 0x10
lea eax, [ebp - 0x2074]
cmovae eax, dword [ebp - 0x2074]
mov byte [eax], 0
mov eax, dword [ebp - 0x20ac]
jmp 0x10021042
push dword [ebp - 0x20a4]
lea eax, [ebp - 0x2010]
push 0x2000
push 1
push eax
call fcn.100489c2
add esp, 0x10
mov dword [ebp - 0x20ac], eax
test eax, eax
jne 0x10021040
push dword [ebp - 0x20a4]
call fcn.10048c52
add esp, 4
lea eax, [ebp - 0x20a0]
lea ecx, [ebp - 0x2088]
push eax
call fcn.10020050
cmp dword [ebp - 0x208c], 0x10
lea ebx, [ebp - 0x20a0]
mov edi, dword [ebp - 0x20a0]
lea esi, [ebp - 0x20a0]
mov ecx, dword [ebp - 0x2090]
cmovae ebx, edi
cmovae esi, edi
add ebx, ecx
cmp esi, ebx
je 0x100211af
nop dword [eax]
movsx eax, byte [esi]
push eax
call fcn.10048f7f
mov byte [esi], al
add esp, 4
inc esi
cmp esi, ebx
jne 0x10021190
mov ecx, dword [ebp - 0x2090]
mov edi, dword [ebp - 0x20a0]
mov esi, dword [ebp - 0x20b4]
lea eax, [ebp - 0x20a0]
mov ebx, dword [ebp - 0x208c]
cmp ebx, 0x10
cmovae eax, edi
cmp dword [esi + 0x14], 0x10
mov edx, dword [esi + 0x10]
jb 0x100211d2
mov esi, dword [esi]
push ecx
push eax
mov ecx, esi
call fcn.10013470
add esp, 8
test eax, eax
sete byte [ebp - 0x20a5]
cmp ebx, 0x10
jb 0x10021213
lea ecx, [ebx + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10021209
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002126d
push ecx
push edi
call fcn.1003c31e
add esp, 8
mov bl, byte [ebp - 0x20a5]
mov edx, dword [ebp - 0x2060]
cmp edx, 0x10
jb 0x1002124f
mov ecx, dword [ebp - 0x2074]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10021245
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10021272
push edx
push ecx
call fcn.1003c31e
add esp, 8
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1003c310
mov esp, ebp
pop ebp
ret
call fcn.100475cc
call fcn.100475cc
int3