Function at 0x424bb0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x44], ecx
push ebx
lea ecx, [eax*8]
sub ecx, eax
mov dword [ebp - 0x34], edx
mov edx, dword [0x437c5c]
lea ecx, [edx + ecx*8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ecx]
mov ecx, dword [ecx + 0x1c]
mov dword [ebp - 0x40], ecx
lea ecx, [eax + eax*4]
add ecx, ecx
add ecx, ecx
mov ebx, dword [ecx + ecx + 0x437db0]
add ecx, ecx
cmp dword [0x438da0], 0
mov dword [ebp - 0x38], esi
mov byte [ebp - 8], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x20], ecx
jne 0x424c5f
mov edx, dword [0x4392b0]
mov dword [esi], edx
mov edx, dword [0x4392b4]
mov dword [esi + 4], edx
mov edx, dword [0x4392b8]
mov dword [esi + 8], edx
mov dl, byte [0x4392bc]
mov byte [esi + 0xc], dl
cmp eax, 2
jge 0x424c5f
mov eax, dword [0x4392b0]
mov esi, dword [ebp - 0x34]
mov dword [esi], eax
mov edx, dword [0x4392b4]
mov dword [esi + 4], edx
mov eax, dword [0x4392b8]
mov dword [esi + 8], eax
mov dl, byte [0x4392bc]
mov byte [esi + 0xc], dl
xor esi, esi
mov dword [ebp - 0x24], esi
cmp dword [ecx + 0x437da0], esi
jle 0x4251a6
fldz
lea esi, [esi + esi*2]
shl esi, 4
fst qword [ebp - 0x30]
add esi, dword [ebp - 0x40]
cmp dword [ecx + 0x437da4], 0
je 0x424f2a
cmp ebx, 8
jne 0x424cb6
mov eax, dword [ebp - 0x20]
fstp st(0)
push edi
push 1
lea eax, [eax + 0x437dc0]
push ebx
push eax
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x424cd6
fld qword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
xor ebx, ebx
movzx eax, byte [ecx + ebx + 0x437dc0]
lea ecx, [ecx + 0x437dc0]
mov dword [ebp - 0x48], eax
cmp eax, 0xfc
jg 0x424cec
fstp st(0)
je 0x424cd6
test eax, eax
jne 0x424cff
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042e325
mov esp, ebp
pop ebp
ret
sub eax, 0xfd
je 0x424e03
dec eax
je 0x424d32
dec eax
fstp st(0)
je 0x424d1a
fild dword [ebp - 0x48]
mov ecx, dword [ebp - 0x20]
inc ebx
mov dword [ecx + 0x437db0], ebx
fsub qword [0x436228]
fst qword [ebp - 0x30]
jmp 0x424fd1
fld qword [0x4394f0]
mov ecx, dword [ebp - 0x20]
inc ebx
fst qword [ebp - 0x30]
mov dword [ecx + 0x437db0], ebx
jmp 0x424fd1
cmp word [esi + 0x20], 0
je 0x424f1b
xor eax, eax
mov cl, byte [eax + 0x4392b0]
mov byte [ebp + eax - 0x14], cl
inc eax
test cl, cl
jne 0x424d3f
cmp word [esi + 0x1e], 8
jle 0x424f1b
inc dword [ebp - 0x24]
inc ebx
cmp ebx, 8
jne 0x424d89
mov eax, dword [ebp - 0x20]
fstp st(0)
push edi
push 1
lea eax, [eax + 0x437dc0]
push ebx
push eax
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x424cd6
fld qword [ebp - 0x30]
xor ebx, ebx
mov eax, dword [ebp - 0x20]
lea eax, [eax + 0x437dc0]
mov al, byte [eax + ebx]
cmp al, 0xfe
jne 0x424db9
mov cl, byte [0x4355e8]
mov eax, dword [0x4355e4]
mov byte [ebp - 8], cl
mov ecx, dword [ebp - 0x20]
inc ebx
mov dword [ebp - 0xc], eax
mov dword [ecx + 0x437db0], ebx
jmp 0x424fd1
cmp al, 0xfd
jne 0x424f1b
push edi
fstp st(0)
push 1
lea edx, [ebp - 0x1c]
push 8
push edx
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x424cd6
push 4
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0xc]
push ecx
call dword [sym.imp.MSVCR100.dll_strncpy]
fld qword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
add esp, 0xc
inc ebx
mov dword [ecx + 0x437db0], ebx
jmp 0x424fd1
cmp word [esi + 0x1c], 1
fstp st(0)
jne 0x424e1a
push edi
push 1
push 8
lea edx, [ebp - 0x30]
push edx
jmp 0x424f06
xor eax, eax
lea esp, [esp]
mov cl, byte [eax + 0x4392b0]
mov byte [ebp + eax - 0x14], cl
inc eax
test cl, cl
jne 0x424e20
cmp word [esi + 0x20], 0
push edi
push 1
push 8
je 0x424f02
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x424cd6
cmp word [esi + 0x1e], 8
jle 0x424f18
inc dword [ebp - 0x24]
inc ebx
cmp ebx, 8
jne 0x424e8a
push edi
push eax
mov eax, dword [ebp - 0x20]
lea eax, [eax + 0x437dc0]
push ebx
push eax
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x424cd6
xor ebx, ebx
mov eax, dword [ebp - 0x20]
lea eax, [eax + 0x437dc0]
mov al, byte [eax + ebx]
cmp al, 0xfe
jne 0x424ebe
mov ecx, dword [0x4355e4]
fld qword [ebp - 0x30]
mov dl, byte [0x4355e8]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x20]
inc ebx
mov byte [ebp - 8], dl
mov dword [ecx + 0x437db0], ebx
jmp 0x424fd1
cmp al, 0xfd
jne 0x424f18
push edi
push 1
lea eax, [ebp - 0x1c]
push 8
push eax
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x424cd6
push 4
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0xc]
push edx
call dword [sym.imp.MSVCR100.dll_strncpy]
fld qword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
add esp, 0xc
inc ebx
mov dword [ecx + 0x437db0], ebx
jmp 0x424fd1
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x424cd6
fld qword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
inc ebx
mov dword [ecx + 0x437db0], ebx
jmp 0x424fd1
cmp word [esi + 0x1c], 1
fstp st(0)
jne 0x424f3e
push edi
push 1
push 8
lea edx, [ebp - 0x30]
push edx
jmp 0x424fbc
cmp word [esi + 0x20], 0
je 0x424fb3
xor eax, eax
jmp 0x424f50
mov cl, byte [eax + 0x4392b0]
mov byte [ebp + eax - 0x14], cl
inc eax
test cl, cl
jne 0x424f50
push edi
push 1
lea eax, [ebp - 0x14]
push 8
push eax
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x424cd6
cmp word [esi + 0x1e], 8
jle 0x424fce
push edi
push eax
lea ecx, [ebp - 0x1c]
push 8
push ecx
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x424cd6
push 4
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.MSVCR100.dll_strncpy]
add esp, 0xc
inc dword [ebp - 0x24]
jmp 0x424fce
push edi
push 1
push 8
lea ecx, [ebp - 0x1c]
push ecx
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x424cd6
fld qword [ebp - 0x30]
movzx eax, word [esi + 0x20]
cmp ax, 1
jne 0x4250e6
mov eax, dword [esi + 0x18]
add eax, 3
cmp eax, 6
ja case.default.0x424fee
jmp dword [eax*4 + 0x4251bc]
fcom qword [esi]
fnstsw ax
test ah, 1
jne 0x425008
fcom qword [esi + 8]
fnstsw ax
test ah, 0x41
jnp 0x42501a
fld st(0)
fld qword [esi + 0x10]
fucompp
fnstsw ax
test ah, 0x44
jp case.default.0x424fee
mov eax, dword [ebp - 0x3c]
fstp st(0)
fld qword [0x4394f0]
mov edx, dword [ebp - 0x44]
fstp qword [edx + eax*8]
inc eax
mov dword [ebp - 0x3c], eax
jmp 0x42518b
fcom qword [esi]
fnstsw ax
test ah, 1
jne case.default.0x424fee
fcom qword [esi + 8]
fnstsw ax
test ah, 0x41
jp case.default.0x424fee
mov eax, dword [ebp - 0x3c]
fstp st(0)
fld qword [0x4394f0]
mov edx, dword [ebp - 0x44]
fstp qword [edx + eax*8]
inc eax
mov dword [ebp - 0x3c], eax
jmp 0x42518b
fld qword [0x4394f0]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x4250d2
mov eax, dword [ebp - 0x3c]
fstp st(1)
mov edx, dword [ebp - 0x44]
fstp qword [edx + eax*8]
inc eax
mov dword [ebp - 0x3c], eax
jmp 0x42518b
fld st(0)
fld qword [esi]
jmp 0x42500d
fld st(0)
fld qword [esi]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x42501a
fld st(0)
fld qword [esi + 8]
jmp 0x42500d
fld st(0)
fld qword [esi]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x42501a
fld st(0)
fld qword [esi + 8]
fucompp
fnstsw ax
test ah, 0x44
jmp 0x425006
fstp st(0)
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
fstp qword [edx + eax*8]
inc eax
mov dword [ebp - 0x3c], eax
jmp 0x42518b
cmp ax, 0xffff
jne 0x425139
cmp dword [0x438da0], 0
je 0x425110
fadd qword [0x436220]
sub esp, 8
fstp qword [esp]
call sub.MSVCR100.dll_floor
mov eax, dword [ebp - 0x38]
fstp qword [eax]
add esp, 8
jmp 0x42518b
mov edx, dword [ebp - 0x38]
fstp st(0)
lea eax, [ebp - 0x14]
mov ecx, eax
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x425120
mov esi, dword [ebp - 0x38]
mov eax, 0xc
call fcn.004045b0
jmp 0x42518b
cmp ax, 0xfffe
jne 0x425189
cmp dword [0x438da0], 0
je 0x425163
fadd qword [0x436220]
sub esp, 8
fstp qword [esp]
call sub.MSVCR100.dll_floor
mov edx, dword [ebp - 0x34]
fstp qword [edx]
add esp, 8
jmp 0x42518b
mov edx, dword [ebp - 0x34]
fstp st(0)
lea eax, [ebp - 0x14]
mov ecx, eax
sub edx, ecx
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x425170
mov esi, dword [ebp - 0x34]
mov eax, 0xc
call fcn.004045b0
jmp 0x42518b
fstp st(0)
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, dword [edx + 0x437da0]
jge 0x4251a6
mov esi, eax
mov ecx, edx
jmp 0x424c70
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.0042e325
mov esp, ebp
pop ebp
ret