Function at 0x41f740
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x288
mov eax, dword [0x4db06c]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x288], eax
push edi
mov edi, ecx
mov dword [ebp - 0x280], esi
lea eax, [ebx + 0xb8]
mov dword [ebp - 0x278], ebx
mov edx, eax
mov dword [ebp - 0x274], eax
lea eax, [esi + esi]
mov ecx, dword [edi + 0x840]
add ecx, eax
mov dword [ebp - 0x284], eax
movzx eax, word [edx]
mov dword [ebp - 0x27c], ecx
test ax, ax
je 0x41f7bb
mov esi, eax
mov word [ecx], si
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
mov esi, eax
test ax, ax
jne 0x41f7a2
mov esi, dword [ebp - 0x280]
movzx eax, word [ecx - 2]
lea edx, [ecx - 2]
add eax, 0x2800
mov dword [ebp - 0x270], 0x3ff
cmp ax, word [ebp - 0x270]
cmova edx, ecx
xor eax, eax
mov word [edx], ax
sub edx, dword [ebp - 0x27c]
sar edx, 1
test dword [ebx + 0x30], 0x400
je 0x41f818
mov eax, dword [edi + 0x6a0]
and eax, 0x4000
or eax, 0
jne 0x41f818
xor ebx, ebx
mov dword [ebp - 0x280], 1
mov dword [ebp - 0x270], ebx
jmp 0x41f8cb
lea eax, [esi + edx]
mov dword [ebp - 0x280], 0
mov esi, dword [edi + 0x840]
mov ecx, str.:fc_verify
mov dword [ebp - 0x27c], 0
lea ebx, [esi + eax*2]
mov eax, 0x3a
mov edx, ebx
sub ecx, ebx
mov word [edx], ax
add edx, 2
movzx eax, word [ecx + edx]
test ax, ax
jne 0x41f846
movzx eax, word [edx - 2]
lea ecx, [edx - 2]
add eax, 0x2800
cmp ax, word [ebp - 0x270]
cmova ecx, edx
xor eax, eax
push eax
push eax
push 3
push eax
push 1
push SysReAllocString
push esi
mov word [ecx], ax
call dword [sym.imp.KERNEL30.dll_CreateFileW]
mov esi, eax
test esi, esi
je 0x41f8aa
cmp esi, 0xffffffff
je 0x41f8aa
push 0
lea eax, [ebp - 0x27c]
push eax
push 0x200
lea eax, [ebp - 0x20c]
push eax
push esi
call dword [sym.imp.KERNEL30.dll_ReadFile]
xor eax, eax
mov word [ebx], ax
mov ebx, dword [ebp - 0x27c]
mov dword [ebp - 0x270], ebx
test esi, esi
je 0x41f8cb
cmp esi, 0xffffffff
je 0x41f8cb
push esi
call dword [sym.imp.KERNEL30.dll_CloseHandle]
mov eax, dword [ebp - 0x288]
cmp dword [eax], 0
jne 0x41f923
mov ecx, dword [ebp - 0x284]
xor edx, edx
mov dword [eax], 1
mov eax, dword [edi + 0x840]
push edx
push edx
push edx
mov word [ecx + eax], dx
mov ecx, dword [edi + 0x858]
mov eax, dword [edi + 0x840]
lea eax, [eax + ecx*2]
mov ecx, edi
push eax
call fcn.004182b0
mov esi, dword [ebp - 0x274]
mov ecx, dword [edi + 0x840]
mov edx, dword [ebp - 0x284]
mov ax, word [esi]
mov word [edx + ecx], ax
jmp 0x41f929
mov esi, dword [ebp - 0x274]
cmp dword [ebp - 0x280], 0
je 0x41f94c
push 0x280
push ebx
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
push esi
call fcn.004182b0
jmp 0x41fbd5
test ebx, ebx
jne 0x41f96a
push 0x202
push ebx
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
push esi
call fcn.004182b0
jmp 0x41fbd5
test dword [edi + 0x6a8], 0x40000
jne 0x41f9a3
push 0x201
push ebx
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
push esi
call fcn.004182b0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00487555
mov esp, ebp
pop ebp
ret 0xc
push 0x40
xorps xmm0, xmm0
mov dword [ebp - 0x254], 0
lea eax, [ebp - 0x250]
movlpd qword [ebp - 0x26c], xmm0
push 0
push eax
movlpd qword [ebp - 0x264], xmm0
movlpd qword [ebp - 0x25c], xmm0
call fcn.0048b570
add esp, 0xc
lea eax, [ebp - 0x26c]
mov edx, ebx
lea ecx, [ebp - 0x20c]
push eax
call fcn.0041f450
add esp, 4
test eax, eax
jne 0x41fa10
push 0x240
push ebx
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
push esi
call fcn.004182b0
jmp 0x41fbd5
mov ecx, dword [ebp - 0x278]
mov eax, dword [ebp - 0x25c]
cmp eax, dword [ecx + 0x28]
jne 0x41fb8f
mov eax, dword [ebp - 0x258]
cmp eax, dword [ecx + 0x2c]
jne 0x41fb8f
mov edx, dword [ebp - 0x254]
lea eax, [edi + 0x1034]
cmp edx, dword [edi + 0x104c]
je 0x41fa5c
push edx
mov ecx, eax
call fcn.004650c0
mov ecx, dword [ebp - 0x278]
lea eax, [edi + 0x1034]
push ecx
push eax
push dword [edi + 0x840]
mov ecx, edi
call fcn.00418ab0
test eax, eax
jne 0x41fa89
push 0x220
push ebx
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
push esi
call fcn.004182b0
jmp 0x41fbd5
lea ecx, [edi + 0x1034]
call fcn.00412b10
mov ebx, eax
lea edx, [edi + 0x1064]
lea esi, [ebp - 0x250]
sub ebx, 4
jb 0x41fab8
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x41fabd
add edx, 4
add esi, 4
sub ebx, 4
jae 0x41faa7
cmp ebx, 0xfffffffc
je 0x41fb2e
mov al, byte [edx]
cmp al, byte [esi]
jne 0x41faea
cmp ebx, 0xfffffffd
je 0x41fb2e
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x41faea
cmp ebx, 0xfffffffe
je 0x41fb2e
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x41faea
cmp ebx, 0xffffffff
je 0x41fb2e
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x41fb2e
mov eax, dword [ebp - 0x25c]
or eax, dword [ebp - 0x258]
jne 0x41fb66
cmp dword [ebp - 0x254], 5
jne 0x41fb66
lea ecx, [ebp - 0x250]
mov edx, 0x4c2710
lea esi, [eax + 0xc]
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41fb66
add ecx, 4
add edx, 4
sub esi, 4
jae 0x41fb10
push str.detect_old_xxh3_zero_value__ignored__n
call fcn.0045f780
add esp, 4
push 0x204
push dword [ebp - 0x270]
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
mov eax, dword [ebp - 0x274]
push eax
call fcn.004182b0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00487555
mov esp, ebp
pop ebp
ret 0xc
push 0x210
push dword [ebp - 0x270]
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
mov eax, dword [ebp - 0x274]
push eax
call fcn.004182b0
lea eax, [edi + 0x1064]
push eax
jmp 0x41fba6
push 0x208
push ebx
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
push esi
call fcn.004182b0
push 0
mov eax, dword [ebp - 0x278]
push dword [eax + 0x2c]
push dword [eax + 0x28]
push dword [eax + 0x24]
push dword [eax + 0x20]
mov eax, dword [edi + 0x840]
push ecx
mov ecx, dword [edi + 0x858]
push 0xd0000
lea eax, [eax + ecx*2]
mov ecx, edi
push eax
call fcn.00417da0
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00487555
mov esp, ebp
pop ebp
ret 0xc