Function at 0x41df60
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x44
push ebx
push ebp
mov ebx, ecx
push esi
push edi
mov edi, dword [ebx + 0xb0]
test edi, edi
jne 0x41df92
push 0x2000
mov dword [ebx + 0xb8], 0x400
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [ebx + 0xb0], edi
mov ecx, dword [ebx + 0xb8]
xor eax, eax
shl ecx, 3
mov edx, ecx
push str.Detect_edge_node..._n
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x30]
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x41e1a1
mov eax, dword [ebx + 0x34]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x24]
mov eax, dword [ebx + 0x34]
mov ecx, dword [ebx + 0x38]
xor esi, esi
mov dword [esp + 0x10], ecx
test eax, eax
mov dword [esp + 0x30], esi
jle 0x41e51d
mov eax, dword [ebx + 0x30]
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x24], edx
test eax, eax
mov dword [esp + 0x20], ecx
jle 0x41e16b
cmp dword [edx], 0xc7c34f80
je 0x41e154
test ecx, ecx
jne 0x41e019
fld dword [0x44268c]
jmp 0x41e01c
fld dword [edx - 4]
lea edi, [eax - 1]
cmp ecx, edi
jne 0x41e02d
mov dword [esp + 0x14], 0xc7c34f80
jmp 0x41e034
mov edi, dword [edx + 4]
mov dword [esp + 0x14], edi
test esi, esi
jne 0x41e042
mov dword [esp + 0x18], 0xc7c34f80
jmp 0x41e054
lea edi, [eax*4]
mov ebp, edx
sub ebp, edi
mov edi, dword [ebp]
mov dword [esp + 0x18], edi
mov edi, dword [ebx + 0x34]
dec edi
cmp esi, edi
jne 0x41e066
mov dword [esp + 0x1c], 0xc7c34f80
jmp 0x41e06d
fld dword [edx + eax*4]
fstp dword [esp + 0x1c]
fcomp dword [0x44268c]
fnstsw ax
test ah, 0x40
jne 0x41e0b1
fld dword [esp + 0x14]
fcomp dword [0x44268c]
fnstsw ax
test ah, 0x40
jne 0x41e0b1
fld dword [esp + 0x18]
fcomp dword [0x44268c]
fnstsw ax
test ah, 0x40
jne 0x41e0b1
fld dword [esp + 0x1c]
fcomp dword [0x44268c]
fnstsw ax
test ah, 0x40
je 0x41e154
mov eax, dword [ebx + 0xb8]
mov edi, dword [ebx + 0xb4]
cmp edi, eax
jl 0x41e134
mov ebp, dword [ebx + 0xb0]
add eax, 0x400
mov dword [ebx + 0xb8], eax
lea edx, [eax*8]
push edx
call sub.MFC42.DLL_operatornew
mov ecx, dword [ebx + 0xb8]
mov edi, eax
shl ecx, 3
mov edx, ecx
xor eax, eax
shr ecx, 2
mov dword [ebx + 0xb0], edi
mov esi, ebp
rep stosd dword es:[edi], eax
mov ecx, edx
push ebp
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [ebx + 0xb4]
mov edi, dword [ebx + 0xb0]
shl ecx, 3
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call sub.MFC42.DLL_operatordelete
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
add esp, 8
mov eax, dword [ebx + 0xb4]
mov edi, dword [ebx + 0xb0]
mov dword [edi + eax*8], ecx
mov dword [edi + eax*8 + 4], esi
mov eax, dword [ebx + 0xb4]
inc eax
mov dword [ebx + 0xb4], eax
mov eax, dword [ebx + 0x30]
inc ecx
add edx, 4
cmp ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
jl 0x41e001
mov edx, dword [ebx]
push 0
mov ecx, ebx
call dword [edx + 0x28]
mov eax, dword [ebx + 0x30]
mov ecx, dword [esp + 0x10]
inc esi
lea edx, [ecx + eax*4]
mov eax, dword [ebx + 0x34]
cmp esi, eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], edx
jl 0x41dfe8
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
fild dword [ebx + 0x30]
sub esp, 8
fimul dword [ebx + 0x34]
fmul qword [0x442718]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_ceil]
call sub.MSVCRT.dll__ftol
mov esi, eax
mov eax, dword [ebx + 0x34]
cdq
idiv esi
mov ebp, eax
inc ebp
mov dword [esp + 0x48], ebp
lea eax, [ebp + 2]
imul eax, dword [ebx + 0x30]
lea ecx, [eax*4 + 0x10]
push ecx
call sub.MFC42.DLL_operatornew
mov edx, dword [ebx]
add esp, 0xc
mov edi, eax
mov ecx, ebx
push esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x30], 0x4cbebc20
mov dword [esp + 0x34], 0xccbebc20
call dword [edx + 0x24]
test esi, esi
jle 0x41e4f5
xor ecx, ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x28], ecx
jmp 0x41e21e
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x40]
mov esi, dword [ebx + 0x34]
mov eax, esi
sub eax, ecx
cmp ebp, eax
jge 0x41e22f
mov dword [esp + 0x24], ebp
jmp 0x41e235
mov dword [esp + 0x24], eax
mov ebp, eax
lea eax, [ecx - 1]
xor edx, edx
test eax, eax
setl dl
dec edx
and edx, eax
lea eax, [ecx + ebp]
dec esi
mov dword [esp + 0x20], edx
cmp esi, eax
jge 0x41e250
mov eax, esi
mov esi, dword [ebx + 0x48]
sub eax, edx
inc eax
test esi, esi
mov dword [esp + 0x38], eax
je 0x41e2cb
xor esi, esi
test eax, eax
jle 0x41e2cb
mov eax, dword [ebx + 0x30]
lea ebp, [eax*4]
lea eax, [esi + edx]
push 0
imul dword [ebx + 0x30]
add eax, 0x8c
push 4
adc edx, 0
push edx
push eax
call fcn.00430690
lea ecx, [esp + 0x50]
mov dword [esp + 0x50], edx
mov edx, dword [ebx + 0x48]
push 0
push ecx
push eax
push edx
mov dword [esp + 0x5c], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebx + 0x48]
lea eax, [esp + 0x48]
push 0
push eax
push ebp
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
inc esi
add edi, ebp
cmp esi, eax
jl 0x41e26e
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 0x30]
sub ecx, edx
mov esi, eax
mov edi, dword [esp + 0x3c]
imul esi, ecx
cmp ecx, ebp
lea esi, [edi + esi*4]
mov dword [esp + 0x10], esi
jge 0x41e4cf
add edx, ecx
sub ebp, ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ebp
mov ecx, dword [esp + 0x10]
xor esi, esi
test eax, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ecx
jle 0x41e4a9
cmp dword [ecx], 0xc7c34f80
je 0x41e492
test esi, esi
jne 0x41e322
fld dword [0x44268c]
jmp 0x41e325
fld dword [ecx - 4]
lea edi, [eax - 1]
cmp esi, edi
jne 0x41e336
mov dword [esp + 0x14], 0xc7c34f80
jmp 0x41e33d
mov edi, dword [ecx + 4]
mov dword [esp + 0x14], edi
test edx, edx
jne 0x41e34b
mov dword [esp + 0x18], 0xc7c34f80
jmp 0x41e35d
lea edi, [eax*4]
mov ebp, ecx
sub ebp, edi
mov edi, dword [ebp]
mov dword [esp + 0x18], edi
mov edi, dword [ebx + 0x34]
dec edi
cmp edx, edi
jne 0x41e36f
mov dword [esp + 0x1c], 0xc7c34f80
jmp 0x41e376
fld dword [ecx + eax*4]
fstp dword [esp + 0x1c]
fcomp dword [0x44268c]
fnstsw ax
test ah, 0x40
jne 0x41e3ba
fld dword [esp + 0x14]
fcomp dword [0x44268c]
fnstsw ax
test ah, 0x40
jne 0x41e3ba
fld dword [esp + 0x18]
fcomp dword [0x44268c]
fnstsw ax
test ah, 0x40
jne 0x41e3ba
fld dword [esp + 0x1c]
fcomp dword [0x44268c]
fnstsw ax
test ah, 0x40
je 0x41e45d
mov eax, dword [ebx + 0xb8]
mov edi, dword [ebx + 0xb4]
cmp edi, eax
jl 0x41e43d
mov ebp, dword [ebx + 0xb0]
add eax, 0x400
mov dword [ebx + 0xb8], eax
lea edx, [eax*8]
push edx
call sub.MFC42.DLL_operatornew
mov ecx, dword [ebx + 0xb8]
mov edi, eax
shl ecx, 3
mov edx, ecx
xor eax, eax
shr ecx, 2
mov dword [ebx + 0xb0], edi
mov esi, ebp
rep stosd dword es:[edi], eax
mov ecx, edx
push ebp
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [ebx + 0xb4]
mov edi, dword [ebx + 0xb0]
shl ecx, 3
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call sub.MFC42.DLL_operatordelete
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
add esp, 8
mov eax, dword [ebx + 0xb4]
mov edi, dword [ebx + 0xb0]
mov dword [edi + eax*8], esi
mov dword [edi + eax*8 + 4], edx
mov eax, dword [ebx + 0xb4]
inc eax
mov dword [ebx + 0xb4], eax
fld dword [ecx]
fcomp qword [0x442680]
fnstsw ax
test ah, 0x41
jne 0x41e492
fld dword [esp + 0x2c]
fcomp dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x41e47f
mov eax, dword [ecx]
mov dword [esp + 0x2c], eax
fld dword [esp + 0x30]
fcomp dword [ecx]
fnstsw ax
test ah, 1
je 0x41e492
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x30]
inc esi
add ecx, 4
cmp esi, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ecx
jl 0x41e30a
mov eax, dword [ebx + 0x30]
mov ecx, dword [esp + 0x10]
inc edx
lea ecx, [ecx + eax*4]
mov dword [esp + 0x34], edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
dec ecx
mov dword [esp + 0x38], ecx
jne 0x41e2f4
mov edi, dword [esp + 0x3c]
mov edx, dword [ebx]
push 0
mov ecx, ebx
call dword [edx + 0x28]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
add ecx, eax
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], eax
jne 0x41e216
push edi
call sub.MFC42.DLL_operatordelete
fld dword [esp + 0x34]
fadd dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add esp, 4
mov dword [ebx + 0x40], ecx
fmul dword [0x442554]
mov dword [ebx + 0x44], edx
fstp dword [ebx + 0x3c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret