Function at 0x41d9a0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43e0a0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
mov ebx, ecx
push esi
push edi
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0x10], esp
test eax, eax
je 0x41d9d3
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
fld qword [ebp + 0x18]
fcomp qword [0x442618]
lea edi, [ebx + 0x70]
mov ecx, 0xc
xor eax, eax
mov dword [ebx + 0x68], 0
rep stosd dword es:[edi], eax
fnstsw ax
test ah, 0x41
jne 0x41df48
fld qword [ebp + 0x20]
fcomp qword [0x442618]
fnstsw ax
test ah, 0x41
jne 0x41df48
fld qword [ebp + 8]
fsub qword [ebx + 8]
fld qword [ebp + 0x10]
fsub qword [ebx + 0x10]
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp + 8], 0
mov dword [ebp + 0xc], 0
fstp qword [ebp + 0x10]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
fst qword [ebp - 0x54]
fst qword [ebp - 0x6c]
fadd qword [ebp + 0x18]
mov dword [ebp - 0x44], edx
mov ecx, edx
mov edx, eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], edx
mov dl, byte [0x455905]
fst qword [ebp - 0x5c]
fstp qword [ebp - 0x64]
fld qword [ebp + 0x10]
fadd qword [ebp + 0x20]
mov dword [ebp - 0x40], eax
mov dword [ebp + 0x20], 0
mov dword [ebp + 0x24], 0
xor ecx, ecx
fst qword [ebp - 0x34]
fstp qword [ebp - 0x3c]
fild dword [ebx + 0x34]
fsub qword [0x4425f8]
fild dword [ebx + 0x30]
fsub qword [0x4425f8]
fstp qword [ebp + 0x18]
test dl, 1
jne 0x41daaf
fld qword [0x442618]
fcos
or dl, 1
mov byte [0x455905], dl
fstp qword [0x455908]
test dl, 2
jne 0x41dacb
fld qword [0x442618]
fsin
or dl, 2
mov byte [0x455905], dl
fstp qword [0x455910]
fld qword [ebp - 0x1c]
fsub qword [0x453ca0]
fabs
fcomp qword [0x442710]
fnstsw ax
test ah, 0x41
jne 0x41db0a
fld qword [ebp - 0x1c]
fcos
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov dword [0x453ca0], eax
mov dword [0x453ca4], esi
fstp qword [0x455908]
fld qword [ebp - 0x1c]
fsin
fstp qword [0x455910]
fld qword [ebp + ecx - 0x6c]
fld qword [ebp + ecx - 0x4c]
fld st(0)
fmul qword [0x455910]
fld st(2)
fmul qword [0x455908]
faddp st(1)
fstp qword [ebp + ecx - 0x6c]
fmul qword [0x455908]
fxch st(1)
fmul qword [0x455910]
fsubp st(1)
fstp qword [ebp + ecx - 0x4c]
fld qword [ebp + ecx - 0x6c]
fdiv qword [ebx + 0x20]
fld qword [ebp + ecx - 0x4c]
fdiv qword [ebx + 0x28]
fstp qword [ebp + 0x10]
fld qword [ebp + 0x18]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x41db5c
fst qword [ebp + 0x18]
fld qword [ebp + 8]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x41db6d
fstp qword [ebp + 8]
jmp 0x41db6f
fstp st(0)
fcom qword [ebp + 0x10]
fnstsw ax
test ah, 1
jne 0x41db7e
fstp st(0)
fld qword [ebp + 0x10]
fld qword [ebp + 0x20]
fcomp qword [ebp + 0x10]
fnstsw ax
test ah, 0x41
je 0x41db97
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], esi
add ecx, 8
cmp ecx, 0x20
jl 0x41da93
fsub qword [0x4425f8]
fstp qword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
push edi
push esi
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
test eax, eax
jge 0x41dbcf
mov dword [ebp + 0x14], 0
jmp 0x41dbe2
push edi
push esi
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov dword [ebp + 0x14], eax
fld qword [ebp + 0x18]
fsub qword [0x4425f8]
fstp qword [ebp + 0x18]
mov edi, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x18]
push edi
push esi
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
test eax, eax
jge 0x41dc11
mov dword [ebp + 0x1c], 0
jmp 0x41dc24
push edi
push esi
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov dword [ebp + 0x1c], eax
fld qword [ebp + 0x20]
fadd qword [0x4425f8]
mov eax, dword [ebx + 0x34]
lea edi, [eax - 1]
fstp qword [ebp + 0x20]
mov esi, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
push esi
push ecx
call dword [sym.imp.MSVCRT.dll_ceil]
add esp, 8
call sub.MSVCRT.dll__ftol
cmp edi, eax
jl 0x41dc65
mov edx, dword [ebp + 0x20]
push esi
push edx
call dword [sym.imp.MSVCRT.dll_ceil]
add esp, 8
call sub.MSVCRT.dll__ftol
mov edi, eax
fld qword [ebp + 8]
fadd qword [0x4425f8]
mov eax, dword [ebx + 0x30]
lea esi, [eax - 1]
fstp qword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_ceil]
add esp, 8
call sub.MSVCRT.dll__ftol
cmp esi, eax
jge 0x41dc95
mov eax, esi
jmp 0x41dcab
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x20]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_ceil]
add esp, 8
call sub.MSVCRT.dll__ftol
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x1c]
sub edi, ecx
sub eax, edx
inc edi
inc eax
mov esi, eax
cmp edi, 1
mov dword [ebp - 0x14], edi
mov dword [ebp + 0xc], esi
jl 0x41df48
cmp esi, 1
jl 0x41df48
fild dword [ebp + 0x1c]
mov al, byte [0x455918]
test al, 1
fmul qword [ebx + 0x20]
fild dword [ebp + 0x14]
fmul qword [ebx + 0x28]
fstp qword [ebp + 0x20]
jne 0x41dcfe
fld qword [0x442618]
fcos
or al, 1
mov byte [0x455918], al
fstp qword [0x455920]
test al, 2
jne 0x41dd17
fld qword [0x442618]
fsin
or al, 2
mov byte [0x455918], al
fstp qword [0x455928]
fld qword [ebp - 0x1c]
fsub qword [0x453c98]
fabs
fcomp qword [0x442710]
fnstsw ax
test ah, 0x41
jne 0x41dd57
fld qword [ebp - 0x1c]
fcos
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [0x453c98], ecx
mov dword [0x453c9c], edx
fstp qword [0x455920]
fld qword [ebp - 0x1c]
fsin
fstp qword [0x455928]
fst qword [ebp - 0x2c]
fmul qword [0x455920]
fld qword [0x455928]
fmul qword [ebp + 0x20]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebx + 0x20]
mov dword [ebp - 4], 0
fsubp st(1)
fld qword [ebp - 0x2c]
fmul qword [0x455928]
fld qword [0x455920]
fmul qword [ebp + 0x20]
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x84], ecx
mov ecx, dword [ebx + 0x28]
mov dword [ebx + 0x88], edx
mov edx, dword [ebx + 0x2c]
mov dword [ebx + 0x90], ecx
faddp st(1)
mov dword [ebx + 0x94], edx
mov edx, esi
imul edx, edi
fstp qword [ebp + 0x20]
fadd qword [ebx + 8]
fstp qword [ebx + 0x70]
fld qword [ebp + 0x20]
fadd qword [ebx + 0x10]
mov eax, dword [ebx + 0x24]
mov ecx, dword [ebp + 0x14]
mov dword [ebx + 0x8c], eax
mov eax, dword [ebp + 0x1c]
shl edx, 2
fstp qword [ebx + 0x78]
push edx
mov dword [ebx + 0x98], esi
mov dword [ebx + 0x9c], edi
mov dword [ebx + 0xa0], eax
mov dword [ebx + 0xa4], ecx
call sub.MFC42.DLL_operatornew
mov ecx, dword [ebx + 0xa8]
add esp, 4
test ecx, ecx
mov dword [ebx + 0x68], eax
je 0x41de84
mov edx, eax
mov eax, dword [ebx + 0x30]
imul eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov dword [ebp + 0x24], edx
add eax, ecx
mov ecx, dword [ebx + 0x38]
test edi, edi
lea eax, [ecx + eax*4]
mov dword [ebp + 0x14], 0
jle 0x41de6c
jmp 0x41de31
mov esi, dword [ebp + 0xc]
lea ecx, [esi*4]
mov edi, edx
mov dword [ebp + 0x1c], ecx
mov edx, ecx
mov esi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x24]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x14]
add edx, ecx
mov ecx, dword [ebx + 0x30]
mov dword [ebp + 0x24], edx
lea eax, [eax + ecx*4]
mov ecx, dword [ebp + 0x14]
inc ecx
cmp ecx, esi
mov dword [ebp + 0x14], ecx
jl 0x41de2e
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov dword [ebp + 0x24], eax
mov eax, dword [ebx + 0x48]
test eax, eax
jne 0x41deac
xor eax, eax
xor edx, edx
test eax, eax
setne dl
mov eax, edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
xor esi, esi
test edi, edi
jle 0x41df21
mov edx, dword [ebp + 0x14]
push 0
push 4
lea eax, [esi + edx]
imul dword [ebx + 0x30]
mov ecx, eax
mov eax, dword [ebp + 0x1c]
mov edi, edx
cdq
add ecx, eax
adc edi, edx
add ecx, 0x8c
adc edi, 0
push edi
push ecx
call fcn.00430690
mov dword [ebp - 0x20], edx
lea edx, [ebp - 0x20]
push 0
push edx
mov dword [ebp - 0x24], eax
push eax
mov eax, dword [ebx + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x24]
lea edx, [ebp - 0x18]
push 0
lea edi, [ecx*4]
mov ecx, dword [ebx + 0x48]
push edx
push edi
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp + 0x24]
mov eax, dword [ebp - 0x14]
inc esi
add ecx, edi
cmp esi, eax
mov dword [ebp + 0x24], ecx
jl 0x41deb2
mov eax, 1
xor edx, edx
test eax, eax
setne dl
mov eax, edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x20